[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compilation of methods per class.

   Date: 	Wed, 26 Sep 1990 06:17:12 PDT
   From: Trent Lange <lange@CS.UCLA.EDU>

   (defmethod fast-foo :around ((self around-class1))
     (cons 'fast-foo-around (call-next-method)))

   (defmethod slow-foo :around ((self around-class1))
     (cons 'slow-foo-around1 (call-next-method)))

   [ ... ]

These conses are probably confusing your timings, mostly with GC
overhead.  If you feel you must do some real computation here, fixnum
arithmetic might be better.  And you might also check that your test
macro itself (which I've not read carefully) does not cons.  Most CLOS
benchmarks should be executable without consing.  (Methods which play
games with #'CALL-NEXT-METHOD are a notable exception.)  Consing often
indicates a poor implementation of some CLOS facility, sometimes due
to missing compiler optimizations.