Я хочу захватить результаты вызова макроса time
, чтобы собрать несколько измерений и обработать их. Я попытался локально setf
стандартный вывод и перенаправить его на строку, но он не работал с макросом time
. Может быть, это неправильно, но я попробовал:
(with-output-to-string (str)
(let ((*standard-output* str))
(time (test-with-size 40))))
Вопросы:
- Можно ли захватить вывод
time
?
- Если нет, могу ли я зафиксировать вывод команды
slime-profile-report
?
- Если ничего из вышеперечисленного не работает, как я могу измерить время, потраченное на оценку произвольного выражения?
Что я хочу сделать, это измерить время выполнения алгоритма по мере увеличения размера входных данных, поэтому для каждого входного размера (в диапазоне от 1 до 100) я буду измерять много раз и сохраню среднее значение. Тогда я хочу представить результаты. Составлять графики легко, и я нашел много способов в Cliki, но как я могу собрать результаты?
Я использую CLISP и CCL.
EDIT: Пол Натан указал, что макрос time
выводит на *trace-output*
, что является решением. Я хотел бы получить более хорошее, более простое решение, потому что с этим я должен проанализировать трассировку, специфичную для реализации.