菜鸟笔记
提升您的技术认知

如何定位CPU占用过高问题

程序运行后出现CPU占用过高,一般是代码有死循环等。top命令可以查看CPU使用情况,找到问题进程。

对CPU使用过高的进程的所有线程进行排序

ps H -e -o pid,tid,pcpu,cmd --sort=pcpu | grep xxx

得到CPU占用率最高的线程的线程号,比如2907进程的线程2909

使用gdb

gdb

gdb>attach 2907

gdb>info threads

列出所有线程信息,发现2909线程编号12

切换线程,bt打印线程栈

gdb>thread 12

gdb>bt

根据打印的信息,重点定位相关代码段。