1、查看进程中实例较大的对象,先用jps查找进程号,再用jmap 查看对象的实例个数
~
jps
2809
StackAllocTest
2810
Jps
~
jmap -histo 2809
![](https://i-blog.csdnimg.cn/blog_migrate/9463bf2bea36be1d3b572c3216107e88.png)
2、定位占用cpu较高的方法
1、top 查看cpu高的进程
top
2、top -Hp 进程号 查看异常线程
top -H -p 123
3、printf “%x\n” 线程号 将异常线程转为16进制
printf “%x\n”421
4、./jstack 进程号 |grep 16进制异常线程号 -A 90 定位异常线程代码位置,-A90是日志行数
./jstask pid >> spector.txt
./jstack 123 |grep 1a5 -A90
jps 查看所有的进程号
jstack 进程号 查看进程下面的线程