Обратите внимание, что profiler.el
является профилировщиком выборки. Возможно, вы захотите попробовать профилировщик инструментов, такой как elp.el
, если вы заинтересованы в настенном времени.
В вашем случае вы можете использовать инструмент magit
, используя M-x elp-instrument-package
RET magit
RET . После запуска команд magit вы можете посмотреть на результаты, используя M-x elp-results
RET .
Для magit
вы, вероятно, обнаружите, что функция magit-process-file
занимает много времени. Для дальнейшего изучения конкретных вызовов функций вы можете просто оснастить эту или любую другую функцию, добавив функцию подсказки, регистрирующую время выполнения вместе с аргументами функции, в буфер сообщений для каждого отдельного вызова функции следующим образом.
(defun log-function-time (f &rest args)
(let ((time-start (current-time)))
(prog1
(apply f args)
(message "%s seconds used in (magit-process-file %s)"
(time-to-seconds (time-subtract (current-time) time-start))
args))))
(advice-add 'magit-process-file :around 'log-function-time)