GC "Heisenberg" problem in latest CVS bootstrap?

Todd Fleming todd at flemingcnc.com
Sat Dec 4 10:23:15 PST 2004


Tim Olson wrote:

> 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.

Could this be the cause?

x at RootTraits forwardTo: y
[
  x = y
    ifFalse:
      [CurrentMemory forward: x pointer to: y pointer].
  interpreter stackPush: y.
  CurrentMemory garbageCollect
] `pidginPrimitive.

Todd




More information about the Slate mailing list