java 代码性能出现问题如何快速定位到时哪个函数导致?

最近客户的服务器上部署上我们的产品之后,在客户使用一段时间后,因为产品的问题而导致CPU占用率95%以上,严重一点导致服务器重启。
客户体验非常差。代码是用JAVA开发的。我们想急于优化代码,但是代码量很大,不可能把所有的代码都筛查一遍!
请问各位大神,有什么好的方法或者好的工具没有,能够在应用服务器上能够快速定位是哪个函数或者什么操作导致CPU异常。

用TProfiler可以log函数调用的时间开销。
https://blog.csdn.net/q915730058/article/details/79136805
另外需要指出的是,有些开销,比如jvm的gc开销,还有io开销、网络开销等等,需要另外的分析。

您好,一般来说都是日志来判断的,您可以把您注释的日志取消注释,或者使用debug监控cpu内存的方式来试试
如果解决了您的问题,请点击采纳,如果并没有,请在下方回复,我会继续帮您解答。

jdk提供了一套专门定位性能的工具箱(在jdk的bin目录下) 我的步骤一般是使用jmc工具定位到那个线程占用的内存或CPU比较高,然后根据线程ID使用jstack工具能定位改线程执行的方法,这样子你大概就知道哪里出问题了

具体的使用方法请参照 https://blog.csdn.net/u010943801/article/details/79885843

如果我的回答对您有帮助,请点击采纳,如果没有,请留言

方法好多:
1. aop打印关键点执行日志、调用时间等。
2. 数据库连接池改用druid,打开相关监控
典型的监控如下: 图片说明