GC "Heisenberg" problem in latest CVS bootstrap?

Tim Olson tim at io.com
Sat Dec 4 07:08:45 PST 2004


On Dec 3, 2004, at 9:57 AM, Lendvai Attila wrote:

> If there was a way to count free heap size at a full GC then there
> should be some check to early-grow the heap when it gets around 70% or
> so...
> I've been looking at the GC code for a few minutes but I need even
> further reading on GC's first... :)

I think that is exactly the problem.  I instrumented the GC code 
(directly in vm.c) to keep track of the number of bytes allocated 
between calls to garbageCollect.  It appears that during the processing 
of numeric.slate, the number of bytes allocated between GCs drops down 
to less than 1KB, where it stays for some time without actually growing 
the heap.  Thus, we are spending > 90% of our time trying to scavenge a 
small amount of free memory, rather than just growing the heap.

I think this condition may be triggering another problem, though, in 
that sometimes the build succeeds, while other times I see a 
segmentation violation.

	-- tim




More information about the Slate mailing list