2014-01-21 103 views

回答

6

快速搜索顯示benchmark.el,它提供benchmark-runbenchmark-run-compiled函數以及benchmark版本以交互方式運行。鏈接的例子:

C-u 512 M-x benchmark (sort (number-sequence 1 512) '<) 
Elapsed time: 0.260000s (0.046000s in 6 GCs)

所有這些功能使用的定時器是benchmark-elapse宏,它如果需要的話,你也可以直接使用:

ELISP> (require 'benchmark) 
ELISP> (benchmark-elapse 
     (sit-for 2)) 
2.00707889 
2

我發現正是我一直在http://nullprogram.com/blog/2009/05/28/

尋找

(defmacro measure-time (&rest body) "Measure and return the running time of the code block." (declare (indent defun)) (let ((start (make-symbol "start"))) `(let ((,start (float-time))) ,@body (- (float-time) ,start))))

+0

你能解釋爲什麼這比'benchmark-run'更好嗎? – phils

+0

重量更輕。我正在尋找一些超級簡單的東西。 – killdash9

+0

然後你可以使用'benchmark-elapse'。我已經將它添加到Jon的答案中。 – phils

相關問題