大家好 圣诞节快乐 我需要一个建议,我有以下代码:
int main()
{
int k=5000000;
int p;
int sum=0;
for (p=0;p<k;p++)
{
sum+=p;
}
return 0;
}
当我组装它时,我得到了
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运行它,我得到的主要执行最多,这是非常明显的! 然而,我想更进一步,能够知道L2或L3是否执行得最多。这里显然L3执行最多。还有某种分析器,模拟器可以为我提供整个代码的数据吗?