Hi Neil, "Neil Jerram" <[EMAIL PROTECTED]> writes:
> On 05/11/2008, Ludovic Courtès <[EMAIL PROTECTED]> wrote: >> I finally [0] conducted experiments to compare Guile's GC with my port >> of Guile to the Boehm-Demers-Weiser GC (BDW-GC). The code for that port >> is not currently available on-line but I'd be happy to push it somewhere >> (would Guile's repo at Savannah be a good fit?). > > I don't see why not... An argument could be "it's not exciting and it increases the repository size." :-) But if nobody says it, I'm happy to proceed. >> For `string', I expect it to be partly due to the fact that under >> unmodified Guile it's libc's malloc that's exercised more than the GC >> itself (since stringbuf contents are allocated with `malloc ()'). > > How is that different in BDW-GC Guile? (I was actually referring to execution time mainly.) In BDW-GC Guile, everything is allocated using the GC primitives (GC_malloc), and libc's `malloc ()' isn't used at all. Note that this doesn't explain the significantly larger heap of Guile compared to BDW-GC. One explanation could be incorrect stats that lead Guile's GC to think there's plenty of heap available. > It's always possible to trade execution for heap, isn't it? For > example, I presume we could configure current Guile so as to gc less? I presume so, but I don't know exactly how: there are too many (environment) variables to be tweaked, and their effect on heap usage or execution time is not obvious (see, e.g., http://thread.gmane.org/gmane.lisp.guile.devel/6699/focus=6836). I forgot to mention that FSD = 3 and non-incremental mode is the default for BDW-GC. > In these results, it looks like Guile is quicker for a given heap size > - or smaller for a given execution time. Well, the benchmarks only show that Guile by default is slower and uses less heap than BDW-GC, so you're jumping to the conclusions. It should be noted that this series of benchmarks does not particularly stress the GC and uses a small heap (less than 2 MiB, except for `guile-test'), unlike `gcbench' and `string'. I noticed that Will Clinger et al. collected GC benchmarks at http://www.ccs.neu.edu/home/will/GC/sourcecode.html . I'll run a series of measurements with these. > Do you just mean having to maintain the code? I'll write a separate note for that. Thanks! Ludo'.