我如何使用 perf 来分析我的代码?
Posted
技术标签:
【中文标题】我如何使用 perf 来分析我的代码?【英文标题】:how can i use perf to profile my code? 【发布时间】:2014-08-05 00:56:01 【问题描述】:我正在尝试使用“perf”来查看我在 Linux 上的 C++ 程序中所有 CPU 的使用情况。我想附加到正在运行的进程并获取符号或行号列表,然后我可以查看以进行优化。
【问题讨论】:
在一个终端运行你的代码,在另一个终端运行perf top
,你会得到不同的。
【参考方案1】:
附加到进程并查看热点的实时更新:
perf top -p $(pidof yourapp)
要附加到一个进程,然后对其进行分析以供以后评估,请执行以下操作:
perf record -p $(pidof yourapp)
后来:
perf report
对于基于 dwarf 的调用图,您可以添加 --call-graph dwarf
。
请注意,您应该使用 -O2 -g
之类的内容编译您的应用程序以获取优化和调试符号,否则您将不知道函数名称、文件、行号等。pp。
【讨论】:
以上是关于我如何使用 perf 来分析我的代码?的主要内容,如果未能解决你的问题,请参考以下文章
如何分析 perf sched 脚本和 perf sched 延迟?