1、使用jps查找正在运行的java进程
2、通过使用top命令查找该线程下CPU使用最高的线程
top -Hp pid: 即 top -Hp 2860
3、TIME列就是各个Java线程耗费的CPU时间,显然CPU时间最长的是ID为2968的线程,用 printf "%x\n" 2968
可得到2968的十六进制值为:b98
4、终于轮到jstack上场了,它用来输出进程2860的堆栈信息,然后根据线程ID的十六进制值grep,如下:
可以看到CPU消耗在SessionTracker这个类的Object.wait(),于是就能很容易的定位到相关的代码了。
1 标签:十六进制,java,top,2968,线程,CPU From: https://www.cnblogs.com/cindylpp/p/18101856