mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-24 19:03:29 +00:00
* lisp/emacs-lisp/benchmark.el (benchmark-run): Allow variable.
(benchmark-run): Allow `repetitions` to be a variable rather than a constant.
This commit is contained in:
parent
66b7718901
commit
c7d2a0dd76
@ -50,7 +50,7 @@ Return a list of the total elapsed time for execution, the number of
|
||||
garbage collections that ran, and the time taken by garbage collection.
|
||||
See also `benchmark-run-compiled'."
|
||||
(declare (indent 1) (debug t))
|
||||
(unless (natnump repetitions)
|
||||
(unless (or (natnump repetitions) (symbolp repetitions))
|
||||
(setq forms (cons repetitions forms)
|
||||
repetitions 1))
|
||||
(let ((i (make-symbol "i"))
|
||||
@ -58,7 +58,7 @@ See also `benchmark-run-compiled'."
|
||||
(gc (make-symbol "gc")))
|
||||
`(let ((,gc gc-elapsed)
|
||||
(,gcs gcs-done))
|
||||
(list ,(if (> repetitions 1)
|
||||
(list ,(if (or (symbolp repetitions) (> repetitions 1))
|
||||
;; Take account of the loop overhead.
|
||||
`(- (benchmark-elapse (dotimes (,i ,repetitions)
|
||||
,@forms))
|
||||
@ -101,7 +101,7 @@ the command prompts for the form to benchmark.
|
||||
For non-interactive use see also `benchmark-run' and
|
||||
`benchmark-run-compiled'."
|
||||
(interactive "p\nxForm: ")
|
||||
(let ((result (eval `(benchmark-run ,repetitions ,form))))
|
||||
(let ((result (eval `(benchmark-run ,repetitions ,form) t)))
|
||||
(if (zerop (nth 1 result))
|
||||
(message "Elapsed time: %fs" (car result))
|
||||
(message "Elapsed time: %fs (%fs in %d GCs)" (car result)
|
||||
|
Loading…
Reference in New Issue
Block a user