On Oct 7, 2005, at 5:37 PM, Andreas Raab wrote:
Avi -
Try this: Instead of "self fullGC" in primSnapshot, try inserting:
"DISCLAIMER: This requires some careful review which I don't have the time for right now. This is NOT working or tested code so don't even think of submitting this to VMMaker unless you actually understand why this ought to work and what differences there possibly might be between a full GC and an incremental GC + tenuring." savedThreshold := tenuringThreshold. "remember prior threshold" tenuringThreshold := 0. "reset tenuring threshold" self incrementalGC. "force tenuring" tenuringThreshold := savedThreshold.
This may already be enough since tenuring will clean up the roots and thus leave the image in a stable state. But of course, it does require the image to perform a full GC if you want to reclaim space before the snapshot.
Excellent, thanks. Do you have any tests to suggest? Any edge cases to look at? Assuming it seems to basically work, how could I assure myself that this was an ok thing to put into production?
Avi