[Openmcl-devel] GC aspects, tuning, behavior

R. Matthew Emerson rme at clozure.com
Sun Jun 28 13:20:39 PDT 2009


On Jun 28, 2009, at 2:07 PM, Jon S. Anthony wrote:

> I think we are pretty near closure (!) here.  This thing is  
> sufficiently
> different that there really isn't a whole lot you can tune.  However,
> let me ask about this scenario for the "loads of large numbers of  
> known
> to be "undying" objects":
>
> Start with a major/global/full GC.  Save the current value of
> lisp-gc-heap-threshold. Set the threshold limits of gen-1 and gen-2  
> (NOT
> gen 0) to something very small.  Actually how about just 0.  Set
> lisp-heap-gc-threshold "high" - basically enough to hold all the  
> objects
> to be created.  Create objects.  There should be no minor GC during  
> this
> as they should all fit in Gen 0.  Do a full GC.  Set
> lisp-gc-heap-threshold back to its saved (previous) value.  I guess  
> this
> part depends on promotion policy: Will all these things be moved to  
> old
> space at this point?  Or do you need to do a "few" GC's to trigger the
> promotion?  Or will it all just go "KA-BOOM!"  Or...

You could consider disabling the EGC with (ccl:egc nil) while you're  
doing your initial "bulk load" of objects that you expect to be long- 
lived.




More information about the Openmcl-devel mailing list