mmtk-core
mmtk-core copied to clipboard
Sparse SFT map
Currently SFTMap is a dense table (Vec), which each entry maps to a chunk. This works fine if our heap range is dense. As we plan to use sparse heap range (e.g. from 0 to max uint_64), the SFTMap is unnecessarily expensive. We need a new sparse SFTMap implementation which only reserve entries for the memory chunks that are in use.
Rather than make a sparse table, we should probably just use address-based SFT indexing (as per #219) when we're building for 64-bit platforms.
Currently for 64-bit, SFTMap uses about 800MB of memory.
Done in https://github.com/mmtk/mmtk-core/pull/632.