Hasty Briefsbeta

Bilingual

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.