利用perf找到导致cpu高的具体函数
sudo apt-get install linux-tools-common linux-tools-`uname -r`
安装perf
利用c语言编写一个简单的死循环脚本
#include <stdio.h>
void heavy_computation() {
while (1) {
// 无限循环,模拟高 CPU 使用
}
}
int main() {
printf("Starting heavy computation...\n");
heavy_computation();
return 0;
}
gcc -g -o infinite_loop infinite_loop.c 编译
./infinite_loop 启动
查出具体进程的id
perf record -g -p 13131
我们可以看到 heavy_computation 函数占用了99.99%的资源
如果看不到具体的调用栈,需要 -g graph,0.3 (后面的0.3可以调的更小一些)
perf record 可以生成一个名为 perf.data 的文件 进行更深入的分析