GC "Heisenberg" problem in latest CVS bootstrap?

Brian Rice water at tunes.org
Wed Dec 8 18:17:10 PST 2004


Uh, the consensus is that this is a good idea. I'll accept any 
reasonable patch in this direction.

On Dec 5, 2004, at 1:06 PM, Brian Rice wrote:

> Thanks for the analysis. This does seem mostly correct. Lee, any 
> comments or ideas on design improvements?
>
> On Dec 4, 2004, at 6:37 PM, Tim Olson wrote:
>> On Dec 4, 2004, at 12:46 PM, Brian Rice wrote:
>>> 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.
>>
>> I don't think there is anything special about "numeric.slate", other 
>> than it is large (so it shows up dramatically when it takes a long 
>> time to process), and during my build that's where the free space 
>> drops to a very small size.   During processing it spent > 90% of its 
>> time in garbage collection, but GC always found enough free that it 
>> didn't trigger a heap growth.
>>
>> To test the idea that it is simply the free space (or more precisely, 
>> the lack thereof) that is causing this, I performed a large dummy 
>> allocation just before the bootstrap build:
>>
>> 	Array newSize: 5000000.
>>
>> The build went much faster; in particular, processing of 
>> "numeric.slate" was easily 10x faster.
>>
>> After a number of builds I've not seen a segmentation violation like 
>> I saw a couple of times during the "slow" build, so I've not been 
>> able to track down the root cause of that, but I suspect that it was 
>> caused by some strange condition during the excessive GC.
>>
>> I think Attila Lendvai's suggestion of triggering early heap growth 
>> when the free space reclaimed drops below a particular level is a 
>> good one.
>
> --
> Brian T. Rice
> LOGOS Research and Development
> http://tunes.org/~water/
>
>
--
Brian T. Rice
LOGOS Research and Development
http://tunes.org/~water/




More information about the Slate mailing list