[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