参考答案
结论:先定位高占用进程与线程,再结合栈信息找热点代码。步骤:1. 使用top或htop查看CPU占用高的进程PID;2. 通过top -H -p PID或ps -Lf PID查看具体线程,记录高占用线程ID(TID);3. 将TID转为十六进制,用jstack PID > dump.txt(Java)或pstack(C++)输出线程栈,搜索对应nid定位到代码行;4. 非Java可用perf record -p PID采样,perf report查看热点函数。原理:CPU高通常因死循环、频繁GC或算法复杂度高,栈快照能暴露运行中的方法。注意区分用户态与内核态占用。