如何对性能下降进行低级分析?

时间:2015-09-04 15:56:03

标签: performance arm cpu cpu-usage cpu-architecture

例如,我有一个大的线性函数(1个基本块,~1000个指令) 这被称为很多次。经过一些摆弄编译器选项后,我得到了 Cortex-A57出乎意料的10%性能下降。据推测它是由于 一点点不同的指令调度。我想调查这个问题 更深入,找出哪些指令组合导致不必要的管道 摊位。但我不知道我怎么能这样做。我想,我需要一个非常详细的 执行跟踪以了解发生了什么,虽然我不确定它是否存在 可能会得到这样的痕迹。

所以,问题是:我可以使用哪些工具来调查这种低级别 性能问题?如何确定阻止CPU执行的内容 每个周期的最大指令数?

PS 我最感兴趣的是Cortex-A57内核,但我很感激有用 关于任何其他核心甚至不同架构的信息。

PPS 该函数访问内存,但预计几乎所有内存 访问命中缓存。该假设由perf stat -e r42,r43确认 (L1D_CACHE_REFILL_LDL1D_CACHE_REFILL_ST事件。)

0 个答案:

没有答案