La evaluación comparativa no se trata solo de obtener los números, sino también de tomar decisiones basadas en el análisis de resultados.
Hay un paquete benchstat.el en MELPA que puede usar para obtener funciones que proporciona el programa benchstat .
Implementa una evaluación comparativa basada en la comparación en la que examina X
las propiedades de rendimiento Y
.
Las funciones de Benchstat se pueden ver como un benchmark-run-compiled
contenedor que no solo recopila la información, sino que la devuelve en un formato de interpretación fácil de leer. Incluye:
- Tiempo transcurrido delta entre
X
yY
- Tiempo promedio
- Cantidad de asignaciones
Ejemplo de uso muy simple:
(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)
El benchstat-compare
renderizará resultados en un buffer temporal:
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)
Sin benchstat
embargo, necesitará un programa binario. Si utilizó el lenguaje de programación Go, lo más probable es que ya tenga uno en su sistema. De lo contrario, existe la opción de compilarlo desde las fuentes.
El binario precompilado para linux / amd64 se puede encontrar en la página de lanzamiento de github .