|
From: | Steve Fink |
Subject: | Re: [EXPERIMENT] Emacs with the SpiderMonkey garbage collector |
Date: | Thu, 30 Nov 2017 17:03:51 -0800 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
- during GC you need *double* the heap space. If you only GC a sub-part of your heap (e.g. just one generation), then you only need double that sub-part. So if you only use a copy-GC for the youngest generation it's not a big deal, but if you use stop© over your whole heap, we're talking about a 100% overhead on memory usage.
Yes. The Spidermonkey GC uses moving collection for the nursery generation and nonmoving collection for the tenured heap, though it will also periodically do a compacting GC of the tenured heap that moves things. But the compacting GC breaks the heap into small chunks, so the overhead is at most one of those chunks.
And it doesn't do semispace collection; it moves everything from the nursery to the tenured heap, so you don't need double the nursery size ever. (Not that the nursery is fixed size; it'll double itself if you're filling it up fast, up to a maximum size.)
[Prev in Thread] | Current Thread | [Next in Thread] |