这篇文章主要讲解了如何定位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行代码