如何计算ARM程序中执行的指令数?

时间:2012-04-02 19:53:59

标签: linux performance assembly linux-kernel arm

我想通过计算指令来执行我想要对应用程序进行的更改的性能测量。但是,我对ARM的调试接口不太熟悉,知道如何做到这一点。是否有这种东西的界面?如果有必要,我完全有能力潜入内核,但我的直觉告诉我这种事情应该在用户空间中实现。

2 个答案:

答案 0 :(得分:1)

Linux内核中的

CONFIG_PERF_EVENTS .config

用于访问此功能的用户空间工具位于linux-source/tools/perf/

HW_PERF_EVENTS启用PMU,CPU_HAS_PMU因此定义为(CPU_V6 || CPU_V6K || CPU_V7 || XSCALE_PMU) && (!ARCH_OMAP3 || OMAP3_EMU),因此您的芯片可能拥有它。否则,Linux将尝试在软件中获取一些统计数据(我猜想在中断中采样值为%pc)。

答案 1 :(得分:0)

ARM Profiler User Guide表示在instruction trace中投放时可以创建Real-Time System Model 并且可以在代码和重播视图disassembly panel中显示已执行的指令计数。