GC performance - was Re: [gclist] GC topics

Darius Blasband darius@phidani.be
Wed, 21 Feb 1996 15:23:36 +0100 (MET)


> Hello All,
> 
> >>>>> "Darius" == "Darius Blasband" <darius@phidani.be> writes:
> 
> [[ I skipped interesting stuff ]]
> 
>     Darius> [...] So, 20% of the total execution time is required
>     Darius> (someone might even say "wasted") just to keep track of
>     Darius> all accessible references, even if no new allocation is
>     Darius> performed.
> 
> I think that 20% is an acceptable overhead for GC. I also read
> somewhere that it is usually less (about 5%?) .
> 

I guess that the difference (between 5% and 20%) might come from the fact
that we do not generate native code directly from YAFL, but generate 
intermediate C instead. Hence, we do not have access to the memory layout 
of local variable allocations in a portable way, and we use a conservative 
(understand, less efficient) scheme instead of what we would be able to do 
if we did native code generation.

We did try to use gcc's ability to definea global variable in a register
to optimize gc's management, but the results were disappointing.

We have plans for next year to consider native code generation, in which
case we will probably be able to generate a much more efficient gc scheme,
but that's for next year.

In any case, I think we agree on the fact that precise GC is far easier,
and globally more reliable and faster than conservative GC's...

Cheers...

Darius