L'analyse comparative ne consiste pas seulement à obtenir les chiffres, mais aussi à prendre des décisions basées sur l'analyse des résultats.
Il existe un package benchstat.el sur MELPA que vous pouvez utiliser pour obtenir les fonctionnalités fournies par le programme benchstat .
Il implémente une analyse comparative basée sur la comparaison dans laquelle vous examinez X
les propriétés de performance Y
.
Les fonctions Benchstat peuvent être vues comme un benchmark-run-compiled
wrapper qui non seulement recueille les informations, mais les restitue dans un format d'interprétation facile à lire. Il comprend:
- Delta de temps écoulé entre
X
etY
- Temps moyen moyen
- Montant des allocations
Exemple d'utilisation très 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)
Le benchstat-compare
rendra les résultats dans un tampon temporaire:
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)
Vous aurez cependant besoin d'un benchstat
programme binaire. Si vous avez utilisé le langage de programmation Go, vous en avez probablement déjà un dans votre système. Sinon, il est possible de le compiler à partir des sources.
Le binaire précompilé pour linux / amd64 peut être trouvé sur la page de publication de github .