[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: size-of instance?
- To: info-mcl@digitool.com
- Subject: Re: size-of instance?
- From: arnoudv@ped.kun.nl (Arnoud Verdwaald)
- Date: 18 May 1995 16:00:15 GMT
- Organization: Special Education, Nijmegen University
- References: <abdfaf8f030210043e7a@[198.112.74.194]>
- Sender: owner-info-mcl@digitool.com
In article <abdfaf8f030210043e7a@[198.112.74.194]>,
bill@cambridge.apple.com (Bill St. Clair) wrote:
> [...]
> Here's one way:
>
> (defmacro meter-consing (&body body)
> (let ((bytes (gensym)))
> `(let () ; LET here forces evaluator to compile whole form
> (gc)
> (let ((,bytes (ccl::%freebytes)))
> (multiple-value-prog1
> (progn ,@body)
> (gc)
> (format t "~&Consed ~d bytes~%" (- ,bytes (ccl::%freebytes))))))))
>
> ? (meter-consing (cons 1 2))
> Consed 8 bytes
> (1 . 2)
> ?
Is this code really okay? It gives me weird results (on this Mac LC475 at
least):
? (meter-consing (cons 1 2))
Consed -368 bytes
(1 . 2)
? (let ((result-list nil))
(dotimes (i 100)
(setf result-list (cons i result-list)))
(meter-consing result-list))
Consed 0 bytes
(99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76
75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51
50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26
25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0)
?
Arnoud Verdwaald