1、查看进程中实例较大的对象,先用jps查找进程号,再用jmap 查看对象的实例个数
~
jps
2809
StackAllocTest
2810
Jps
~
jmap -histo 2809
![](https://img-blog.csdnimg.cn/20200507161422634.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xsaW55dW54aWE=,size_16,color_FFFFFF,t_70)
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 进程号 查看进程下面的线程