如何定位代码中哪段导致CPU过载?
步骤一:通过top或者pidstat命令,定位具体的进程号,如下图1
top
步骤二:top -p 1后,按住shift+H 开启显示详细的线程
步骤三:把1855转换成16进制
因为线程中的线程程序号是以16进制存储的
printf "%x
" 1865
步骤四:再通过jstack命令和上面定位的线程号分析线程正在处理的事情
jstack -l 进程id | grep -A 20 0x73f
或 jstack -l 进程id | grep 0x73f
可以分析线程正在做的事情,也可以分析具体代码在做什么事情