@Malabara의 답변 외에도 사용자 정의 with-timer
매크로를 사용하여 코드의 다양한 부분 (예 : init.el
파일) 을 영구적으로 계측 하는 경향이 있습니다 .
차이점은 benchmark
계측하는 특정 코드 비트의 성능을 연구 할 수 있지만 with-timer
항상 코드의 각 계측 된 부분에 소요되는 시간 (충분히 큰 부분에 대한 오버 헤드없이)을 제공한다는 점입니다. 어떤 부분을 더 조사해야하는지
(defmacro with-timer (title &rest forms)
"Run the given FORMS, counting the elapsed time.
A message including the given TITLE and the corresponding elapsed
time is displayed."
(declare (indent 1))
(let ((nowvar (make-symbol "now"))
(body `(progn ,@forms)))
`(let ((,nowvar (current-time)))
(message "%s..." ,title)
(prog1 ,body
(let ((elapsed
(float-time (time-subtract (current-time) ,nowvar))))
(message "%s... done (%.3fs)" ,title elapsed))))))
사용 예 :
(with-timer "Doing things"
(form (to (be evaluated))))
*Messages*
버퍼에 다음과 같은 출력이 나타납니다 .
Doing things... done (0.047s)
Jon Wiegley의 use-package-with-elapsed-timer
뛰어난 use-package
확장 기능 에서 큰 영향을 받았다는 점을 언급해야 합니다.