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