Common Lisp предоставя макрос time
за откриване колко време е необходимо за изпълнение на формуляр и отпечатва информацията в изхода за проследяване:
time оценява формата в текущата среда ( лексикални и динамични). … time отпечатва различни данни за времето и друга информация за проследяване на изхода. Характерът и форматът на отпечатаната информация се определят от изпълнението. Реализациите се насърчават да предоставят такава информация като изминало реално време, време на работа на машината и статистики за управление на съхранението.
Например:
(time (length (make-array 1000000)))
Real time: 0.0140014 sec.
Run time: 0.0 sec.
Space: 4000008 Bytes
GC: 1, GC time: 0.0 sec.
Има ли начин да съберете тези параметри и да ги избутате стъпка по стъпка в някакъв стек или списък и да го върнете от функция?