这篇文章主要讲解了如何定位Java程序占用CPU过高的代码

首先,使用top命令,找到CPU占用高的java程序,记录PID,这里PID为2572

然后再执行 top -H -p 2572,找到CPU占用率高的线程PID,当前占用CPU最高的线程为2573

然后再执行jstack 2572 > cpu.txt 将Java线程栈信息输出到cpu.txt文件

然后将线程的PID转为16进制,printf "%x" 2573

然后再进入cpu.txt,搜索a0d,就可以找到对应线程执行的代码位置了

堆栈显示为DemoApplication.java这个文件的16行代码

最后修改:2023 年 03 月 14 日
如果觉得我的文章对你有用,请随意赞赏