Beim Benchmarking geht es nicht nur darum, die Zahlen zu ermitteln, sondern auch darum, Entscheidungen auf der Grundlage von Ergebnisanalysen zu treffen.
Auf MELPA gibt es das Paket benchstat.el, mit dem Sie die Funktionen des Programms benchstat abrufen können .
Es implementiert ein vergleichsbasiertes Benchmarking, mit dem Sie X
Leistungseigenschaften vergleichen Y
.
Benchstat-Funktionen können als benchmark-run-compiled
Wrapper betrachtet werden, der die Informationen nicht nur sammelt, sondern sie in einem leicht lesbaren Interpretationsformat zurückgibt. Es enthält:
- Zeitdelta zwischen
X
undY
- Mittlere durchschnittliche Zeit
- Zuteilungsbetrag
Sehr einfaches Anwendungsbeispiel:
(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)
Das benchstat-compare
Ergebnis wird in einem temporären Puffer dargestellt:
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)
Sie benötigen jedoch benchstat
Programm-Binärdateien. Wenn Sie die Programmiersprache Go verwendet haben, haben Sie höchstwahrscheinlich bereits eine in Ihrem System. Ansonsten besteht die Möglichkeit, es aus den Quellen zu kompilieren.
Vorkompilierte Binärdateien für Linux / AMD64 finden Sie auf der Github-Release-Seite .