]> code.delx.au - gnu-emacs-elpa/blob - benchmark/context-coloring-benchmark.el
More benchmark improvements.
[gnu-emacs-elpa] / benchmark / context-coloring-benchmark.el
1 (defconst context-coloring-benchmark-path
2 (file-name-directory (or load-file-name buffer-file-name)))
3
4 (defun context-coloring-benchmark-resolve-path (path)
5 (expand-file-name path context-coloring-benchmark-path))
6
7 (defun context-coloring-benchmark-setup ()
8 (setq context-coloring-benchmark-colorization t)
9 (add-hook 'js-mode-hook 'context-coloring-mode)
10 (elp-instrument-package "context-coloring-"))
11
12 (defun context-coloring-benchmark-teardown ()
13 (setq context-coloring-benchmark-colorization nil)
14 (remove-hook 'js-mode-hook 'context-coloring-mode))
15
16 (defun context-coloring-benchmark-run ()
17 (context-coloring-benchmark-setup)
18
19 (let ((result-file (context-coloring-benchmark-resolve-path
20 (concat "./results-" (format-time-string "%s") ".log"))))
21
22 (dolist (path '("./fixtures/jquery-2.1.1.js"
23 "./fixtures/lodash-2.4.1.js"
24 "./fixtures/async-0.9.0.js"
25 "./fixtures/mkdirp-0.5.0.js"))
26
27 (let ((fixture (context-coloring-benchmark-resolve-path path)))
28
29 ;; Test 5 times.
30 (find-file fixture)
31 (dotimes (n 4)
32 (sit-for 1)
33 (revert-buffer t t))
34 (sit-for 1)
35
36 (elp-results)
37 (let ((results-buffer (current-buffer)))
38 (with-temp-buffer
39 (insert (concat fixture "\n"))
40 (prepend-to-buffer results-buffer (point-min) (point-max)))
41 (with-temp-buffer
42 (insert "\n")
43 (append-to-buffer results-buffer (point-min) (point-max))))
44
45 (append-to-file nil nil result-file))))
46
47 (context-coloring-benchmark-teardown)
48 (kill-emacs))