I tried to find gc problems in 21.2 xemacs, but all I could find was
already known:
- cons cells take 50% more storage in 21.2.
- pure space is gone, so gc will always take longer by a fixed amount.
If your physical memory size is near the size that will cause
thrashing, the 50% extra space _could_ translate into 10 times more
clock time used. For me, 21.1 is faster at gc only by less than 25%
when I run
(progn
(compile-and-profile
(let ((count 9000000))
(while (> count 0)
(setq z (cons 1 2))
(setq count (- count 1)))))
(compile-and-profile (loop repeat 10 do (garbage-collect))))
So, to fix this we need to:
- make cons cells take up only 2 words using the Big Bag of Pages
technique (perhaps too hard?)
- implement some kind of generational gc.
We've paid a pretty high price so far for portable dumping. Let's try
to minimize it.
Martin