Benchmarking bukan hanya tentang mendapatkan angka, tetapi juga tentang membuat keputusan berdasarkan analisis hasil.
Ada paket benchstat.el pada MELPA yang dapat Anda gunakan untuk mendapatkan fitur yang disediakan oleh program benchstat .
Ini mengimplementasikan pembandingan berbasis perbandingan tempat Anda menguji X
properti kinerja Y
.
Fungsi Benchstat dapat dilihat sebagai benchmark-run-compiled
pembungkus yang tidak hanya mengumpulkan informasi, tetapi juga mengembalikannya dalam format interpretasi yang mudah dibaca. Itu termasuk:
- Delta waktu yang telah berlalu antara
X
danY
- Berarti waktu rata-rata
- Jumlah alokasi
Contoh penggunaan yang sangat sederhana:
(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)
Surat benchstat-compare
wasiat akan menghasilkan buffer sementara:
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)
Anda akan membutuhkan benchstat
program biner. Jika Anda menggunakan bahasa pemrograman Go, kemungkinan besar Anda sudah memilikinya di sistem. Kalau tidak, ada opsi untuk mengkompilasinya dari sumber.
Biner terkompilasi untuk linux / amd64 dapat ditemukan di halaman rilis github .