上一篇博客说Perf_event_open遇到了问题,获得的计数器不准。 我分析原因,可能是性能计数器是一个核中的硬件,它只能计数在该核中运行的程序。而在多核处理器中,任务调度可能会将我需要计数的程序分配给其他的核,而这种分配是动态的,所以每次得到的不一样。这可能是原因之一。 很凑巧,我误打误撞竟然得到了较为正确的做法。在官方手册中说明。 The pid and cpu arguments
什么是perf,可以用来干什么 perf 是 Linux 内核的性能分析工具集,它可以用来监控和分析系统和应用程序的性能。perf 提供了一系列功能强大的子命令,可以帮助开发者和系统管理员: 监控 CPU 使用率:识别最消耗 CPU 的代码段。分析缓存命中和未命中:优化内存访问模式。记录和分析系统调用:追踪系统调用和事件。生成调用图:分析函数调用关系。检测软件和硬件事件:如页面错误、CPU 循