Skip to content

nonmoving: introduce a family of dense allocators

Teo Camarasu requested to merge teo/ghc:wip/small-segments into master

This patch still has some outstanding work I'd like to do, but I think it's ready for an initial review.

This adds a family of dense allocators to supplement the existing power 2 sized nonmoving allocators. The amount of dense allocators is controlled by --nonmoving-dense-allocator-count. They supply a sequence of StgWord64 sized blocks starting with NONMOVING_ALLOCA0 (8 bytes).

I'd love to hear your thoughts on this @bgamari when you get a chance to take a look.

I've run the GC tests in the nofib benchmark suite and found that this patch leads to modest improvements in run time. Though it's bit hard to tell as my computer is quite noisy. I've also run it on our work application and found similar results. The memory usage improvements are as expected at around ~15% for our work app.

Resolves: #23340 (closed)

Edited by Teo Camarasu

Merge request reports