profiler-start
Команда имеет опции для cpu
, mem
и cpu+mem
. Есть ли способ профилировать команду по истечении времени?
profiler-start
Команда имеет опции для cpu
, mem
и cpu+mem
. Есть ли способ профилировать команду по истечении времени?
Ответы:
Я не уверен, что вы можете сделать это с помощью profiler.el, поскольку это профилировщик выборки. На самом деле он не измеряет, сколько времени занимает выполнение функции, а периодически проверяет, какая функция выполняется в данный момент, и суммирует все эти примеры.
ELP или EmacsLispProfiler - это инструментальный компилятор. Чтобы включить инструментарий, используйте M-x elp-instrument-function для одной или нескольких функций. После запуска кода, который вызывает инструментированные функции, запустите M-x elp-results . Это отобразит буфер, показывающий общее количество вызовов и прошедшее время для каждой инструментальной функции. Проверьте M-x find-libary elp для получения дополнительной информации.
Если вы точно знаете, какую функцию вы хотите профилировать, библиотека эталонных тестов также может быть полезна.
Вы можете использовать,
benchmark
чтобы определить, сколько времени занимает команда.
(benchmark 100 (command))
100 - это количество повторений, сделайте его достаточно большим, чтобы результаты были значимыми. И не забывайте, что вы также можете позвонить в интерактивном режиме.
(контрольная форма повторений)
Выведите время, затрачиваемое на ПОВТОРНОЕ выполнение ФОРМ.
В интерактивном режиме REPETITIONS берется из префикса arg.
Вы также можете использовать его для любой произвольной формы, а не только для одной команды.
(benchmark 100 (form to (be evaluated))