Open
Description
I recently came across Mesh: Compacting Memory Management for C/C++ Applications. From the paper:
It introduces Mesh, a novel memory allocator that acts as a plug-in replacement for malloc. Mesh combines remapping of virtual to physical pages (meshing) with randomized allocation and search algorithms to enable safe and effective compaction without relocation for C/C++.
The results look quite promising:
[…] it reduces the memory of consumption of Firefox by 16% and Redis by 39%.
I’m not familiar enough with Go’s allocator to say precisely whether we could adopt mesh (or parts of it), but I figured I’d bring it up, just in case the paper doesn’t already find its way to people working on Go’s allocator :)