CS-Notes 学习笔记
面试常问Java 后端 · Java 虚拟机

CPU 占用过高怎样定位到具体的代码?

先自己想一想,再看参考要点

参考要点

  • top 找到 CPU 占用高的 Java 进程
  • top -H -p \<pid> 找到占用最高的线程 ID
  • jstack \<pid> 导出线程栈,按 nid 找到这个线程(JDK 18 前 nid 是十六进制,要先用 printf "%x" 转换)
  • 查看它正在执行的代码,常见是死循环或频繁 GC
在学习站中自测这道题看这道题所在的一天

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。