我最近在我的平台上安装了 Perf 工具,并想用它来分析我的平台。
我开始分析一个独立的应用程序。下面是我使用的命令:
perf start ./helloworld
Performance counter stats for './helloworld':
4.555957 task-clock # 0.000 CPUs utilized
1 context-switches # 0.219 K/sec
0 cpu-migrations # 0.000 K/sec
124 page-faults # 0.027 M/sec
<not supported> cycles
<not supported> stalled-cycles-frontend
<not supported> stalled-cycles-backend
<not supported> instructions
<not supported> branches
<not supported> branch-misses
60.005519331 seconds time elapsed
现在我不确定应该如何解释这个输出。它是否符合预期?
另外,我应该如何处理<not supported>
这里的字段,在运行命令之前我需要启用什么来支持该字段?
答案1
“<不支持>”消息意味着您的平台不支持某些处理器的性能监控单元 (PMU) 硬件计数器,也称为性能仪表计数器 (PIC) perf
。这通常发生在虚拟化环境中。在裸机上,您应该会看到这些计数器(除非您使用的是某种特殊的 CPU 类型)。
如果您的虚拟化软件可以为其来宾启用硬件计数器,则该问题可能是可以修复的。例如,最新版本的VMware就有这样的选项。
至于解释,如果您可以启用计数器,则将打印的最有用的指标之一是每周期指令数 (IPC),它表示内存 I/O,越低则越低。但是,这在您的示例中不存在,因为您的平台缺少计数器。