Plush GC: From 117ms to 7ms with a Classic Algorithm
Speeding Up the Plush Garbage Collector

The author's toy language Plush had a copying GC that was too slow, taking 117ms to collect a million live objects. After discovering Rust's default HashMap was a performance bottleneck, they switched to FxHashMap, cutting time to 43ms. But the real win came from abandoning the hash map for forwarding pointers, following Cheney's original algorithm, which brought collection down to 7ms—16.7x faster. The post also covers using mmap to allow dynamic growth of message allocators without invalidating pointers.
Another indication that we should respect the wisdom of our elders and their sacred publications.