Более глубокая функция профилирования / эмуляции - PullRequest
4 голосов
/ 26 декабря 2010

Привет всем счастливого Рождества Мне нужен совет, у меня есть следующий код:

    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 выполнен больше всего. все же есть какой-то профилировщик, эмулятор, который может дать мне эти данные для всего кода?

1 Ответ

1 голос
/ 26 декабря 2010

Что ж, если вы не возражаете против низких технологий, вы можете ответить на любой такой вопрос либо пошагово, либо таким образом . Для последнего метода не имеет значения, насколько велика или сложна ваша программа.

...