perf.data文件没有样本

Xar*_*ara 12 profiling perf

我在ubuntu 11.10上使用perf 3.0.4.它的记录命令运行良好,并在终端显示256个样本收集.但是当我使用perf报告时,它会给我以下错误:

perf.data file has no samples
Run Code Online (Sandbox Code Playgroud)

我搜索了很多解决方案,但还没有成功.

Mar*_*ari 9

该主题包含一些有用的信息:http://www.spinics.net/lists/linux-perf-users/msg01436.html

似乎如果您在不将PMU暴露给guest虚拟机的VM中运行,则默认collection(-e cycles)将不起作用.尝试运行-e cpu-clock.根据该线程,OP在运行Ubuntu 10.04的真实主机中也有同样的问题,所以它也可能为你解决它...

  • 谢谢你!这帮助我解决了火焰图(依赖于“perf”)的问题。希望我提到的火焰图这条评论能帮助其他人找到这个主题。 (2认同)

Bee*_*ope 8

perf record每当我在过去工作过的机器上遇到这个问题时,这是因为我留下了使用性能计数器的其他东西正在运行,例如,我perf top在另一个终端选项卡中运行。

在这种情况下,似乎perf record根本没有记录任何与 PMU 相关的样本。


Man*_*lva 5

perf record命令报告的样本数是近似值,而不是正确的事件数(请参阅此处的perf wiki).

要获取准确的事件数,请转储原始文件并使用wc -l以计算结果数:

perf报告-D -i perf.data | grep RECORD_SAMPLE | wc -l

在您遇到perf report无法查找事件的情况下,此命令应报告0 .

让我们了解更多关于如何使用perf记录的信息,您正在采样哪个事件,哪个硬件,哪个程序.

编辑:您可以先尝试使用-c或-F选项增加采样周期或频率