了解 Perf 工具输出

了解 Perf 工具输出

我最近在我的平台上安装了 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,越低则越低。但是,这在您的示例中不存在,因为您的平台缺少计数器。

相关内容