La versión 5.4.0 de jemalloc, el gestor de memoria de alto rendimiento de Google, incorpora más de 160 commits centrados en la limpieza de deuda técnica, corrección de errores y mejoras de portabilidad. El principal objetivo es modernizar el código base, eliminando dependencias circulares y reorganizando la gestión de arenas y cachés para mejorar la mantenibilidad y el rendimiento.
Entre las nuevas funcionalidades destacan la capacidad de marcar páginas de memoria no recuperables, como las HugeTLB, mediante la nueva bandera EXTENT_ALLOC_FLAG_PINNED. Esto permite a los desarrolladores gestionar el uso de memoria de forma más precisa, reportando estadísticas detalladas a través de las interfaces mallctl. Además, se ha mejorado la alineación de las estadísticas de malloc en formatos legibles por humanos y JSON, y se ha reemplazado la opción experimental de asignación infalible por una opción de compilación que habilita optimizaciones a nivel de compilador para constructores de movimiento.
La versión introduce cambios incompatibles significativos. Se ha eliminado la política de relleno y limpieza de caché fijo, sustituyéndola por objetivos de relleno y retención por bin que se ajustan dinámicamente a la demanda observada entre eventos de recolección de basura. Esto elimina siete controles legados no experimentales, como lg_tcache_nslots_mul y tcache_nslots_small_min, que ahora son ignorados silenciosamente. También se han corregido errores críticos en la preservación de errno durante operaciones de liberación y en la gestión del ciclo de vida de las threads de estado (TSD), asegurando la corrección en C23 y evitando deadlocks potenciales durante la reinicialización de arenas.
