[Ecls-list] Objective achieved

Juan Jose Garcia-Ripoll jjgarcia at users.sourceforge.net
Mon Feb 11 07:34:36 UTC 2008

It seems the spurious consing has been eliminated. Compiling and
loading the file below now gives

real time : 0.033 secs
run time  : 0.032 secs
gc count  : 1 times
consed    : 0 bytes

which compared to the original may not seem much, but it is a starting point

real time : 0.048 secs
run time  : 0.048 secs
gc count  : 2 times
consed    : 1600096 bytes

The difference is more evident in the pretty-printing test code I
mentioned in other messages. Without the new stack frames one gets

real time : 1.910 secs
run time  : 1.878 secs
gc count  : 18 times
consed    : 34629104 bytes

and with them on:

real time : 1.657 secs
run time  : 1.624 secs
gc count  : 4 times
consed    : 6736512 bytes

Though the difference in speed is not that large, the difference in
memory use  is a factor 5.

The code for implementing and using stack frames is still in a CVS
branch, in case someone wants to test it.

(defmethod foo ((a t))
;; This is to force the method combination in the cache
(dotimes (i 100000) (foo 1))
;; This part should not cons any more
(time (dotimes (i 100000) (foo 1)))

Facultad de Fisicas, Universidad Complutense,
Ciudad Universitaria s/n Madrid 28040 (Spain)

More information about the ecl-devel mailing list