# TODO Things that we really should do. ## Release Unused Physical Pages Actually releasing the pages is easy (`MADV_FREE`), but we need to know which pages to release to begin with. ## Test More A memory allocator always needs more and better tests! ## Benchmark Better - The current set of benchmarks is not really comprehensive enough. - Benchmarks should be executed interleaved rather than in large runs of the same allocator. - Argument parsing should replace editing the global constants. ## Support Other OSs While not currently the target, it would be nice to support other OSs. # Ideas Interesting ideas that may or may not help. ## Collapse Normal Pages into Huge Pages We could use `MADV_COLLAPSE` to collapse multiple normal virtual pages into huge pages. ### Pro Huge pages require less room in the address translation buffers, which reduces both actual memory usage and improves performance. ### Contra Collapsing pages may require copying the whole data (takes time). Memory overhead may increase, as releasing 4k pages may become harder or even unfeasable.