O benchmarking não é apenas obter os números, mas também tomar decisões com base na análise de resultados.
Há um pacote benchstat.el no MELPA que você pode usar para obter recursos que o programa benchstat fornece.
Ele implementa benchmarking baseado em comparação, no qual você examina X
as propriedades de desempenho Y
.
As funções do Benchstat podem ser vistas como um benchmark-run-compiled
invólucro que não apenas coleta as informações, mas as devolve em um formato de interpretação fácil de ler. Inclui:
- Delta do tempo decorrido entre
X
eY
- Tempo médio
- Montante das alocações
Exemplo de uso muito simples:
(require 'benchstat)
;; Decide how much repetitions is needed.
;; This is the same as `benchmark-run-compiled` REPETITIONS argument.
(defconst repetitions 1000000)
;; Collect old code profile.
(benchstat-run :old repetitions (list 1 2))
;; Collect new code profile.
(benchstat-run :new repetitions (cons 1 2))
;; Display the results.
;; Can be run interactively by `M-x benchstat-compare'.
(benchstat-compare)
O benchstat-compare
renderizará resultados em um buffer temporário:
name old time/op new time/op delta
Emacs 44.2ms ± 6% 25.0ms ±15% -43.38% (p=0.000 n=10+10)
name old allocs/op new allocs/op delta
Emacs 23.0 ± 0% 11.4 ± 5% -50.43% (p=0.000 n=10+10)
Você precisará do benchstat
programa binário. Se você usou a linguagem de programação Go, provavelmente já possui uma no seu sistema. Caso contrário, há uma opção de compilá-lo a partir das fontes.
O binário pré-compilado para linux / amd64 pode ser encontrado na página de lançamento do github .