การเปรียบเทียบไม่เพียง แต่เกี่ยวกับการรับตัวเลขเท่านั้น แต่ยังเกี่ยวกับการตัดสินใจโดยอาศัยการวิเคราะห์ผลลัพธ์
มีแพ็คเกจbenchstat.elใน MELPA ซึ่งคุณสามารถใช้เพื่อรับคุณสมบัติที่โปรแกรมbenchstatจัดหาให้
จะดำเนินการเปรียบเทียบตามการเปรียบเทียบที่คุณตรวจสอบคุณสมบัติประสิทธิภาพการทำงานกับX
Y
ฟังก์ชั่น Benchstat สามารถดูได้เป็นbenchmark-run-compiled
wrapper ที่ไม่เพียง แต่รวบรวมข้อมูล แต่ให้กลับมาอ่านง่ายในรูปแบบตีความ มันรวมถึง:
- เวลาที่ผ่านไประหว่าง
X
และY
- เวลาเฉลี่ยโดยเฉลี่ย
- จำนวนการจัดสรร
ตัวอย่างการใช้งานที่ง่ายมาก:
(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)
benchstat-compare
จะแสดงผลลัพธ์ในบัฟเฟอร์ชั่วคราว:
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)
คุณจะต้องใช้benchstat
โปรแกรมไบนารี หากคุณใช้ภาษาโปรแกรม Go เป็นไปได้ว่าคุณมีภาษาหนึ่งในระบบ มิฉะนั้นจะมีตัวเลือกในการรวบรวมจากแหล่งที่มา
ไบนารี precompiled สำหรับลินุกซ์ / amd64 สามารถพบได้ที่หน้าปล่อย GitHub