Linux 中的性能分析

问题描述 投票:0回答:2

如果我问

perf list
告诉我我能做什么,它说

  LLC-loads                                          [Hardware cache event]
  LLC-load-misses                                    [Hardware cache event]
  LLC-stores                                         [Hardware cache event]
  LLC-store-misses                                   [Hardware cache event]
  LLC-prefetches                                     [Hardware cache event]
  LLC-prefetch-misses                                [Hardware cache event]

但是,如果我问

perf stat -eLLC-load-misses ls
,它告诉我

   <not supported> LLC-load-misses         

       0,001647655 seconds time elapsed

是否支持?我做错了什么?

linux profiling perf
2个回答
1
投票

计数器显示为“不支持”可能有多种原因

以下是其中的几个

  • 您正在虚拟机中的某些虚拟硬件上运行 perf

  • 架构本身没有这样的计数器。您必须检查架构规范以了解是否支持计数器

附言如果您看到“not counted”,则表示您需要启用内核对计数器的支持。这不是你的情况。


1
投票

根据 perf list 和 perf stat 的输出,似乎 LLC-load-misses 在 perf list 中被列为受支持的硬件缓存事件,但是当您尝试将其与 perf stat 一起使用时,它报告不受支持.

这种差异可能是由于硬件限制、内核或驱动程序问题或性能错误造成的。

为了进一步调查,您可以尝试以超级用户权限运行 perf (sudo perf ...) 以查看它是否有任何不同。此外,您可以尝试使用 perf list 输出中的其他支持的缓存事件运行 perf stat 以查看它们是否正常工作。如果他们这样做,则可能表明 LLC-load-misses 是唯一不受支持的事件。

如果问题仍然存在,您可能需要更新您的系统或性能版本以查看它是否解决了问题。最后,您还可以尝试联系 perf 社区寻求帮助和支持。

© www.soinside.com 2019 - 2024. All rights reserved.