我在 ubuntu 11.10 上使用 perf 3.0.4。它的记录命令运行良好,并显示在收集的终端 256 样本上。但是当我使用perf report时,它给了我以下错误:
perf.data file has no samples
我搜索了很多解决方案,但还没有成功。
这个线程有一些有用的信息:http ://www.spinics.net/lists/linux-perf-users/msg01436.html
似乎如果您在不向来宾公开 PMU 的 VM 中运行,则默认集合 ( -e cycles
) 将不起作用。尝试运行-e cpu-clock
. 根据该线程,OP 在运行 Ubuntu 10.04 的真实主机中也有同样的问题,所以它也可能为你解决它......
该perf record
命令报告的样本数是近似值,而不是正确的事件数(请参阅此处的 perf wiki)。
要获得准确的事件数,请转储原始文件并使用wc -l
计算结果数:
性能报告-D -i perf.data | grep RECORD_SAMPLE | wc -l
perf report
在您说找不到事件的情况下,此命令应报告 0 。
让我们了解有关您如何使用 perf 记录、您正在采样哪个事件、哪个硬件、哪个程序的更多信息。
编辑:您可以先尝试使用-c
or-F
选项增加采样周期或频率
perf record
每当我在过去工作过的机器上遇到这个问题时,那是因为我留下了使用性能计数器的其他东西运行,例如,我perf top
在另一个终端选项卡中运行。
在这种情况下,似乎perf record
根本没有记录任何与 PMU 相关的样本。