Jemalloc 5.3 Released for Memory Management

The memory management library jemalloc 5.4.0 has been introduced, providing an optimized alternative implementation of malloc functions. This release aims to reduce fragmentation and improve performance on multiprocessor systems. To address issues with locking on multi-core systems, jemalloc utilizes a separate memory allocation area for each CPU core, enabling linear scalability as the number of threads increases.

Originally developed for FreeBSD in 2005, jemalloc has been the default memory allocator for this operating system. The library, written in C and distributed under the BSD license, was put into archive mode in June 2025 by the original author. However, development was recently resumed by Meta, a company utilizing jemalloc in its infrastructure.

Key changes in the jemalloc 5.4.0 release include simplifying tcache filling and resetting logic, unifying memory page allocators PAC and HPA, and removing a complex mechanism of indirect calls via vtable. Platform-dependent operations have been moved to separate header files to facilitate maintenance and platform expansion.

Additionally, the release features simplified mallctl command dispatch, redesigned infrastructure for generating and displaying statistics, and the addition of the EXTENT_ALLOC_FLAG_PINNED flag for marking non-preemptible memory mapping areas for priority reuse. New mallctl interfaces have been introduced to provide statistics on the use of pinned memory.

Updates in the release also synchronize malloc statistics in human readable and JSON formats, while removing obsolete parameters for enhanced efficiency. These changes aim to improve the overall performance and usability of the jemalloc library for developers and users.

/Reports, release notes, official announcements.