Профилировать команду по настенному времени

10

profiler-startКоманда имеет опции для cpu, memи cpu+mem. Есть ли способ профилировать команду по истечении времени?

Мэтью Пизиак
источник
Связанный: emacs.stackexchange.com/q/539/50
Малабарба

Ответы:

7

Я не уверен, что вы можете сделать это с помощью profiler.el, поскольку это профилировщик выборки. На самом деле он не измеряет, сколько времени занимает выполнение функции, а периодически проверяет, какая функция выполняется в данный момент, и суммирует все эти примеры.

ELP или EmacsLispProfiler - это инструментальный компилятор. Чтобы включить инструментарий, используйте M-x elp-instrument-function для одной или нескольких функций. После запуска кода, который вызывает инструментированные функции, запустите M-x elp-results . Это отобразит буфер, показывающий общее количество вызовов и прошедшее время для каждой инструментальной функции. Проверьте M-x find-libary elp для получения дополнительной информации.

Если вы точно знаете, какую функцию вы хотите профилировать, библиотека эталонных тестов также может быть полезна.

dgtized
источник
5

Вы можете использовать, benchmarkчтобы определить, сколько времени занимает команда.

(benchmark 100 (command))

100 - это количество повторений, сделайте его достаточно большим, чтобы результаты были значимыми. И не забывайте, что вы также можете позвонить в интерактивном режиме.

(контрольная форма повторений)

Выведите время, затрачиваемое на ПОВТОРНОЕ выполнение ФОРМ.
В интерактивном режиме REPETITIONS берется из префикса arg.

Вы также можете использовать его для любой произвольной формы, а не только для одной команды.

(benchmark 100 (form to (be evaluated))
Malabarba
источник