18

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

perf.data file has no samples

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

4

3 回答 3

15

这个线程有一些有用的信息:http ://www.spinics.net/lists/linux-perf-users/msg01436.html

似乎如果您在不向来宾公开 PMU 的 VM 中运行,则默认集合 ( -e cycles) 将不起作用。尝试运行-e cpu-clock. 根据该线程,OP 在运行 Ubuntu 10.04 的真实主机中也有同样的问题,所以它也可能为你解决它......

于 2016-03-04T17:41:35.277 回答
5

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

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

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

perf report在您说找不到事件的情况下,此命令应报告 0 。

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

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

于 2014-01-17T12:15:21.587 回答
4

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

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

于 2018-07-29T19:01:15.570 回答