GC "Heisenberg" problem in latest CVS bootstrap?
Brian Rice
water at tunes.org
Sat Dec 4 10:46:56 PST 2004
It could if there excessive slot additions and removals at some point.
I haven't profiled anything to look for this, but numeric.slate's
source itself has no abnormal number of such slot manipulations (26). I
don't think the lexer, parser, or compiler do this kind of thing
dynamically, either.
On Dec 4, 2004, at 10:23 AM, Todd Fleming wrote:
> 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
--
Brian T. Rice
LOGOS Research and Development
http://tunes.org/~water/
More information about the Slate
mailing list