加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

更深入的功能分析/仿真

发布时间:2020-12-16 06:55:25 所属栏目:百科 来源:网络整理
导读:大家好 圣诞节快乐 我需要一个建议,我有以下代码: int main(){ int k=5000000; int p; int sum=0; for (p=0;pk;p++) { sum+=p; } return 0;} 当我组装它时,我得到了 main: pushl %ebp movl %esp,%ebp subl $16,%esp movl $5000000,-4(%ebp) movl $0,-12(%eb
大家好
圣诞节快乐
我需要一个建议,我有以下代码:

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执行最多.还有某种分析器,模拟器可以为我提供整个代码的数据吗?

解决方法

好吧,如果你不介意低技术,你可以通过单步或 this way回答任何这样的问题. 对于后一种方法,程序的大小或复杂程度无关紧要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读