3 ms·
>was the impact of lack of compaction on heap allocations over time. On the other hand, heap compaction is itself very expensive, as you are stopping the world
by BurningCycles 8y ago
>was the impact of lack of compaction on heap allocations over time.
On the other hand, heap compaction is itself very expensive, as you are stopping the world while moving data around in the heap.
With Go allocation being so stack-oriented, not using compaction could very well be the best choice.
- kasey_junk 8y agoThere are GC paradigms that do compaction and do not stop the world (https://www.azul.com/products/zing/ https://www.azul.com/products/zing/). They are expensive in other dimensions though (actual cash). Again, not disagree-ing with the choices the golang team are making on GC, they work great for my workloads but they aren't without trade off for other kinds of workflows.
- repolfx 8y agoActually you can now get two open source pauseless compacting collectors: ZGC and Shenandoah.