-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathsuggest-bench.el
43 lines (36 loc) · 1.03 KB
/
suggest-bench.el
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
;;; suggest-bench.el --- measure suggest.el performance
;;; Code:
(require 'suggest)
(require 'dash)
(require 'shut-up)
(defmacro suggest--print-time (form)
"Evaluate FORM, and print the time taken."
`(progn
(message "%s" ',form)
(-let [(total-time gc-runs gc-time)
(shut-up (benchmark-run 1 ,form))]
(message " time: %fs (%fs in %d GCs)"
total-time
gc-time
gc-runs))))
(defun suggest--possibilities-bench ()
(interactive)
;; Basic arithmetic.
(suggest--print-time
(suggest--possibilities '("x" "y") '(1 2) 3))
;; List access.
(suggest--print-time
(suggest--possibilities '("x") '((?a ?b ?c)) ?c))
;; List generation
(suggest--print-time
(suggest--possibilities '("x") '(4) '(1 2 3 4)))
;; Zero results.
(suggest--print-time
(suggest--possibilities '("x") '("foo") "bar")))
(defun suggest-bench ()
(interactive)
;; Overall call time.
(suggest--print-time
(suggest)))
(provide 'suggest-bench)
;; suggest-bench.el ends here