Guile Mailing List Archive

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

Re: Bad news from the module/environment front




Yes, SCM has gotten even faster since Guile forked off.  In principle,
I'd love to see Aubrey's improvements integrated into Guile ---
especially the delayed consing for local environments.

However, either:
1) Aubrey often chooses speed over maintainability, or
2) Aubrey is much, much more clever than I am, and thus his code is
   perfectly maintainable to him, while it sometimes stumps me for
   hours.
Possibly both.  In either case, I find his code difficult to work
with.  But don't let that keep you from integrating his speedups.

>SCM                     old guile evaluator          new environment-evaluator
>
>14100 (10 in gc)        21520 (3430 msec in gc)      32110 (13840 msec in gc)
>14040 (20 in gc)        21620 (3470 msec in gc)      31910 (13820 msec in gc) 
>14790 (40 in gc)        20960 (3640 msec in gc)      32070 (13940 msec in gc) 
>14030 (20 in gc)        21100 (3480 msec in gc)      33220 (13960 msec in gc) 

I think it's better to separate out the GC for purposes of comparison:

old guile evaluator		new environment-evaluator
18090ms + 3430ms in gc		18270ms + 13840ms in gc
18150ms + 3470ms in gc		18090ms + 13820ms in gc
17320ms + 3640ms in gc		18130ms + 13940ms in gc
17620ms + 3480ms in gc		19260ms + 13960ms in gc

This makes it clearer that almost all the slowdown is due to increased
GC time.  Why does the new environment system allocate more than the
old one?  Is the memory image larger as well?  (I hope so, or else I
am very lost.)

Guile Home | Main Index | Thread Index