plasma-umass / Mesh

A memory allocator that automatically reduces the memory footprint of C/C++ applications.
Apache License 2.0
1.75k stars 73 forks source link

[wip] Add additional bitmaps for application use #6

Closed bobby-stripe closed 6 years ago

bobby-stripe commented 6 years ago

The Ruby VM implements a classic mark/sweep GC. This GC is tightly integrated with requesting batches of objects at a time from malloc. Ruby basically asks for a 4k page, carves out some space for metadata + bitmaps, and then divides the rest up into 40-byte RVALUE objects. I think we just want our allocator to be able to provide these additional bitmaps for Ruby (or other, similar applications like cpython).

This current version is kludgey, and I think we want something more dynamic, but its a start.