Mesh is a drop in replacement for malloc that compacts the heap without rewriting application pointers. More information can be found here
According to the authors of this paper using the Mesh allocator reduced the memory consumption of Firefox by 16% and Redis by 39%.
The main task is to understand how the Mesh allocator performs in ROOT. We should start with enabling the allocator for ROOT on UNIX using the LD_PRELOAD mechanism. Then we should produce a set of performance measurements and compare them to the baseline ROOT. This can be done in the context of the Rootbench infrastructure. We should understand the bottlenecks if any and fix them, reporting to either ROOT or Mesh projects.
The deliverable of the project should be a detailed report and presentation on performance comparison of the Mesh allocator and the standard allocation facilities in ROOT. ROOT’s build system should be extended to handle custom allocators with a switch such as -Dmem_alloc=[default,mesh]. ROOT and Rootbench should be extended for the needs of the project.
Intermediate C++; understanding how memory allocation works; minimal experience with performance analysis.