当前位置 : 主页 > 网络安全 > 测试自动化 >

性能 – perf如何工作?

来源:互联网 收集:自由互联 发布时间:2021-06-22
我正在使用perf来了解我的程序的每个函数对总执行时间的开销.为此,我使用cpu-cycles事件: perf record -e cpu-cycles -c 10000 binary-with-arguments 当我查看输出时,我看到与每个函数相关的一些百分
我正在使用perf来了解我的程序的每个函数对总执行时间的开销.为此,我使用cpu-cycles事件:

perf record -e cpu-cycles -c 10000 <binary-with-arguments>

当我查看输出时,我看到与每个函数相关的一些百分比.但是对我来说没有意义的是这样的情况:函数A在函数B中被调用而在其他地方没有.但是我获得的函数A的开销百分比高于B.如果B调用A,则意味着B应该包含A的开销.或者我在这里遗漏了什么?

您正在使用的perf命令仅对您的程序进行采样,而不记录调用堆栈的任何信息.使用perf报告,您可以获得与您的调用关系无关的样本数量.

使用perf报告时,可以使用–call-graph选项获取树:

perf record -e cpu-cycles --call-graph dwarf -c 10000 <binary-with-arguments>
网友评论