jemalloc Postmortem
a year ago
- #performance
- #memory-allocator
- #open-source
- jemalloc was conceived in 2004 and has been publicly used for about 20 years.
- Originally part of the Lyken programming language, jemalloc was integrated into FreeBSD in 2005.
- Early versions of jemalloc had fragmentation issues, leading to significant redesigns.
- Mozilla Firefox 3's memory issues led to jemalloc's porting to Linux and Windows.
- Facebook's adoption of jemalloc highlighted the need for better instrumentation and profiling.
- jemalloc saw major updates, including testing infrastructure and Valgrind support in versions 3.0.0 and 4.x.
- Controversially, Valgrind support was removed in version 5.0.0, leading to backlash from the Rust community.
- Facebook's internal telemetry greatly benefited jemalloc's development, improving performance and resilience.
- Meta's shift in priorities led to reduced investment in jemalloc, stalling long-term development.
- The author considers upstream jemalloc development concluded, with potential for community forks.