gpt4 book ai didi

linux perf 报告不一致的行为

转载 作者:太空宇宙 更新时间:2023-11-04 12:17:03 25 4
gpt4 key购买 nike

我有一个正在使用 perf 进行分析的应用程序我在使用 perf report 时找到了结果不一致,我无法辨别模式。

我启动应用程序并通过 pid 对其进行分析 60 秒:

perf record -p <pid> -o <file> sleep 60

当我用 perf report -i <file> 提取结果时,有时我会在最左边的列中看到一个“+”,它允许我在按下 ENTER 时向下钻取函数调用树,但有时“+”不存在。它似乎取决于记录文件的某些属性,因为我有一组记录文件,有些允许向下钻取,有些则不允许。

如有任何关于如何在此处获得一致行为的建议,我们将不胜感激。

最佳答案

perf record 测量的默认事件是 cpu-cycles。(或者取决于机器,有时是 cpu-cycles:p 或 cpu-cycles:pp)

你确定你的应用程序没有睡很多吗?它会消耗大量的 cpu 周期吗?

尝试对通过大量计算对 CPU 造成压力的事物进行性能测量:

$ apt-get install stress
$ perf record -e cpu-cycles --call-graph fp stress --cpu 1 --timeout 5
$ perf report

随后的运行应该会显示或多或少相似的结果。

如果您的程序是 CPU 密集型的,并且调用堆栈在运行之间有很大差异,那么您可能需要查看 --call-graph 选项,因为 perf 可以使用不同的方法记录调用图:

  • fp(函数指针)
  • lbr(最后一条分支记录)
  • 侏儒

也许不同的方法会产生更好的结果。

关于linux perf 报告不一致的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47145337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com