一、使用ProcessExplorer查看进程的线程信息,如截图

由上图我们可知道线程4396和1956两个线程CPU占用率比较高(系统没有一个用户使用的情况下),使用计算器将线程4396和1956转换为16进制,为112C和7A4
二、使用Java自带的jstack命令导出线程dump
命令:jstack 3092 > jstack.txt
jstack命令更多介绍,请参考Java性能调优工具——Jstack
三、在jstack.txt中查找112C和7A4,查找结果如下截图

既然定位到了哪段代码CPU占用率非常高,接下来的事情就不用明说了…
博客介绍了定位Java代码中高CPU占用部分的方法。先使用ProcessExplorer查看进程的线程信息,找出CPU占用率高的线程,将其十进制ID转换为十六进制;再用Java自带的jstack命令导出线程dump;最后在导出文件中查找十六进制ID,从而定位高CPU占用的代码。
1万+

被折叠的 条评论
为什么被折叠?



