Perfil de um comando por hora da parede

10

O profiler-startcomando tem opções para cpu, mem, e cpu+mem. Existe uma maneira de criar um perfil de um comando pelo tempo decorrido?

Matthew Piziak
fonte
Relacionados: emacs.stackexchange.com/q/539/50
Malabarba

Respostas:

7

Não tenho certeza se você pode fazer isso usando o profiler.el , pois é um profiler de amostragem. Na verdade, não está medindo quanto tempo uma função leva para executar, está periodicamente verificando qual função está sendo executada no momento e somando todas essas amostras.

O ELP ou o EmacsLispProfiler é um compilador de instrumentação. Para ativar a instrumentação, use a função M-x elp-instrument em uma ou mais funções. Após executar o código que chama as funções instrumentadas, execute M-x elp-results . Isso exibirá um buffer mostrando o número total de chamadas e o tempo decorrido para cada função instrumentada. Confira M-x find-libary elp para mais informações.

Se você souber exatamente qual função deseja criar um perfil, a biblioteca de benchmark também poderá ser útil.

dgtized
fonte
5

Você pode usar benchmarkpara determinar quanto tempo um comando leva.

(benchmark 100 (command))

100 é o número de repetições, faça com que seja grande o suficiente para que os resultados sejam significativos. E não esqueça que você também pode chamá-lo de forma interativa.

(FORMULÁRIO DE REPETIÇÃO DE benchmark)

Imprima o tempo necessário para as execuções REPETITIONS do FORM.
Interativamente, REPETITIONS é obtido do prefixo arg.

Você também pode usá-lo para qualquer forma arbitrária, não apenas para um único comando.

(benchmark 100 (form to (be evaluated))
Malabarba
fonte