我在 Ubuntu 11.10 上使用 perf 3.0.4。它的 record 命令能够正常运行并显示收集的 256 个样本。但当我使用 perf report 命令时,会出现以下错误:
perf.data file has no samples
我对这个问题进行了很多搜索,但尚未取得成功。
我在 Ubuntu 11.10 上使用 perf 3.0.4。它的 record 命令能够正常运行并显示收集的 256 个样本。但当我使用 perf report 命令时,会出现以下错误:
perf.data file has no samples
我对这个问题进行了很多搜索,但尚未取得成功。
这个帖子包含一些有用的信息:http://www.spinics.net/lists/linux-perf-users/msg01436.html
如果你正在运行不将PMU暴露给客户机的虚拟机中,则默认的收集指令(-e cycles
)将无法工作。尝试使用 -e cpu-clock
运行。根据该线程,OP在运行Ubuntu 10.04的实际主机上也遇到了同样的问题,因此这种方法可能也适用于你...
perf
)的问题有所帮助。希望我的评论提到火焰图能帮助其他人找到这个主题。 - John Hartperf record
的机器上遇到这个问题时,通常是因为我还在运行其他使用性能计数器的程序,例如,我在另一个终端选项卡中运行了 perf top
。perf record
根本没有记录任何与 PMU 相关的样本。perf record
命令报告的样本数是一个近似值,而不是正确的事件数量(请参见这里的 perf wiki)。要获得准确的事件数,请转储原始文件并使用 wc -l
计算结果的数量:
在您的情况下,此命令应报告为 0 ,其中perf report -D -i perf.data | grep RECORD_SAMPLE | wc -l
perf report
表示找不到事件。请提供更多关于您如何使用 perf record 的信息,例如采样的事件,硬件和程序等。 -c
或 -F
选项来先增加采样周期或频率。