On Sat, May 04, 2019 at 10:53:04PM +0530, K K Subbu wrote:
- "compact memory and compute the size of the memory actually in use"
- objectMemory incrementalGC.
- "maximimize space for forwarding table"
- objectMemory fullGC.
- self snapshotCleanUp.
why call fullGC immediately after incrementalGC but before snapshotCleanup? cleanup may create fresh garbage, so should fullGC be done post cleanup?
I do not know the answer. The Interpreter>>snapshot: method was written that way a long time ago. Based on the comment in the method, I would guess that the incremental GC has some side effects that are needed for saving the memory.
- ^objectMemory getFreeBlock - objectMemory startOfMemory. "Assume all
objects are below the start of the free block"
Wouldn't this expression be better off as a method in ClassicObjectMemory?
sizeInBytes ^self getFreeBlock - self startOfMemory
Yes that would be better.
Dave