Mede ciclos de clock exatos para um programa C / assembly

3

Eu preciso medir o número exato de ciclos de clock necessários para executar um programa. Eu já usei a função clock (), mas seus valores dependem dos parâmetros do sistema. Eu não consegui descobrir como medir os ciclos de clock usando o gdb. Existem outras ferramentas que podem ser usadas para isso? Obrigado.

    
por arm 17.03.2017 / 18:46

1 resposta

2

Você pode usar os contadores de desempenho perf para executar o perfil da execução do programa. Basicamente você faz

perf stat your_executable your_options

Aqui são alguns exemplos rápidos e aqui é um artigo mais detalhado.

Tenha em mente que em CPUs modernas, os ciclos de clock usados para executar algo variam de acordo com o uso do cache, agendamento / reordenamento interno etc. Então, se você quiser identificar gargalos de perfil, use as outras opções perf .

    
por 18.03.2017 / 16:55