Linux的性能分析工具和ARM的性能监测计数器

3
这个问题主要涉及到针对 ARM 处理器的性能分析工具,特别是 ARM v7;我正在使用 Linux。我已经尝试了 Intel 和 AMD 处理器,并且知道它们有各种性能分析工具,例如 Perf、perfmon 和 valgrind,可以让我监控各种计数器,如退休指令、缓存未命中、浮点单元、整数单元等。但是,我不知道 ARM 是否也支持这些性能分析工具。你知道是否有任何可用于 ARM 处理器的工具吗?我在 ARM 参考手册中搜索,但未能找到性能计数器列表。例如,在 Intel 处理器中,您可以在参考手册和 OProfile 网页中找到它们。是否有手册或网页列出了 ARM 的性能监视计数器列表。谢谢。
2个回答

5

ARMv7-A profile 旨在托管丰富的操作系统,具有类似于 Intel 的性能计数器。看起来您已经研究了面向微控制器环境的 v7-M profile。大多数运行 Linux 的最新 ARM 内核,如 Cortex-A9 都来自这个档案。

Perf 已经支持 ARM 架构上的性能计数器,与 oprofile 相同。

ARM 公司还提供了一个名为 DS-5 Streamline 的漂亮的基于 Eclipse 的环境,具有许多额外的功能,可帮助您分析性能问题。


你需要更近期的Linux版本才能获得此支持。 - artless noise
@artlessnoise 随处可用 :) - auselen

0

Valgrind支持ARM架构。请参见这里


谢谢你的回答。但是下面还有一些更详细的信息,所以我选择了它作为正确答案。 - pistal
请将下面与编程有关的内容从英语翻译成中文。只返回翻译的文本:不需要解释。我这样做并不是为了得到投票。谢谢 :) - maverick1989
我没有说那个。技术的东西总是很有趣 - 这就是为什么我们大多数人在工作中玩耍的原因! - pistal
但是,根据valgrind的分析器callgrind的文档:_"Callgrind检测函数调用和返回的能力取决于其运行的平台的指令集。它在x86和amd64上的效果最佳,但不幸的是,在PowerPC、ARM、Thumb或MIPS代码上目前并不那么有效。这是因为这些指令集中没有明确的调用或返回指令,因此Callgrind必须依靠启发式方法来检测调用和返回。"_ - Tor Klingberg
不,它会崩溃并显示“未识别的指令”。 - Soonts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接