大家好,圣诞快乐,我需要一个建议,我有以下代码:
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运行它,我会得到执行最多main,这是很明显的!然而,我想走得更远,能够知道L2和L3哪个执行得最多。很明显,L3执行的最多。但是有没有一种分析器,模拟器可以给我整个代码的数据呢?
发布于 2010-12-27 04:01:12
好吧,如果你不介意低技术,你可以通过单步或this way来回答任何这样的问题。对于后一种方法,无论您的程序有多大或多复杂都无关紧要。
https://stackoverflow.com/questions/4534033
复制相似问题