CPU 占用过高怎样定位到具体的代码?
先自己想一想,再看参考要点
参考要点
- top 找到 CPU 占用高的 Java 进程
- top -H -p \<pid> 找到占用最高的线程 ID
- jstack \<pid> 导出线程栈,按 nid 找到这个线程(JDK 18 前 nid 是十六进制,要先用 printf "%x" 转换)
- 查看它正在执行的代码,常见是死循环或频繁 GC
参考要点
学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。