有人知道汇编循环级分析器吗?
我一直在使用 gprof,但 gprof 隐藏了循环,它是函数级别的分析,但为了优化我的代码,我想要一些东西进入循环级别。我希望它是自动化的,只给我像 gprof 一样的输出。有人建议我去 dtrace,但我不知道要开始。无论如何,任何人都可以指导我吗? 例如
main:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl $5000000, -4(%ebp)
movl $0, -12(%ebp)
movl $0, -8(%ebp)
jmp .L2
.L3:
movl -8(%ebp), %eax
addl %eax, -12(%ebp)
addl $1, -8(%ebp)
.L2:
movl -8(%ebp), %eax
cmpl -4(%ebp), %eax
jl .L3
movl $0, %eax
leave ret
例如,在 gprof 中,它会说 main 执行了 1 次,而 foo 执行了 100 次。但我想知道 L2 或 L3 是否执行了 100 万次,那么我的优化重点就在这里。 如果我的问题含糊不清,请让我解释更多 谢谢
最佳答案
这取决于您使用的操作系统,但对于这种分析,您通常希望使用采样分析器而不是仪表化分析器,例如
- Linux:Zoom
- Mac OS X:Instruments
- Windows:VTune
关于c - 自动 assembly 循环级分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4592335/