Skip to content

nonmoving: Don't traverse filled segment list in pause

Ben Gamari requested to merge wip/gc/concurrent-filled-segment-processing into master

The non-moving collector would previously walk the entire filled segment list during the preparatory pause. However, this is far more work than is strictly necessary. We can rather get away with merely collecting the allocators' filled segment list heads and process the lists themselves during the concurrent phase. This can significantly reduce the maximum gen1 GC pause time in programs with high rates of long-lived allocations.

Edited by Ben Gamari

Merge request reports