Duh, need coffee forget all about mark bit.... Which of course faults the entire Virtual memory page. Still not having to actually shuffle all the memory a few bytes closer to 0000000 should save a bit of time.
On 7-Oct-05, at 2:40 PM, Andreas Raab wrote:
John M McIntosh wrote:
On 7-Oct-05, at 12:49 PM, Avi Bryant wrote:
Now, it should still work to do what Tom was suggesting, right? Do the fullGC in the parent process, then immediately fork and snapshot (without doing a second GC in the child). Does the order of, eg, #storeContextRegisters: and #fullGC inside #snapshot: matter?
If you do the fullGC, then the fork and snapshot which also does a fullGC, then cleans up context records and information about primitive linkups you should find that the amount of memory altered is much less.
It's not. Garbage collection touches (modifies, writes) the header bits of the objects touched which causes the pages to be marked dirty and allocated. You'd have to avoid the entire GC to make this work.
Cheers,
- Andreas
-- ======================================================================== === John M. McIntosh johnmci@smalltalkconsulting.com 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== ===