2010-09-13 3 views

ответ

3

Вы не можете сделать это в портативном общем Lisp.

Полезной может быть функция ROOM. ROOM печатает статистику памяти, а аргумент T печатает их подробно. Таким образом, вы можете увидеть разницу до и после некоторых созданий экземпляра. Реализации могут иметь определенные функции, но вам нужно проверить это с помощью руководства или с помощью списка рассылки поддержки.

+0

Интересно. (Объяснение стороны: я имею дело с большим количеством вещей, и я пытаюсь понять, как их оптимизировать) –

+4

Некоторые реализации позволят вам распределить профили, чтобы найти горячие точки. Это намного лучший способ улучшить след. – Xach

3

В дополнение к ответу Райнер, вот ответ на CLISP: макро EXT:TIMES

(defclass c() ((x) (y) (z))) 
(ext:times (make-instance 'c)) 
            Permanent   Temporary 
Class       instances bytes instances bytes 
-----       --------- --------- --------- --------- 
C          1  48   0   0 
-----       --------- --------- --------- --------- 
Total         1  48   0   0 
Real time: 1.4E-5 sec. 
Run time: 0.0 sec. 
Space: 48 Bytes 
#<C#x000333CF2AA0> 

NB: если вы оцениваете defclass в приглашении, он не компилируется, так times сообщит некоторые пуха в дополнение к c.

Смежные вопросы