BookinglyTech News
Software

Jemalloc 5.4 sale con mejoras de portabilidad y limpieza de código

El asignador de memoria usado en servidores y HPC publica su primera versión relevante tras el renovado impulso de Meta, con una capa de abstracción de sistema operativo y ajustes de rendimiento.

2 min de lecturaPhoronix0 vistas

Jemalloc 5.4 ya está disponible. La versión llega después de que Meta anunciara a principios de año una inversión renovada en este asignador de memoria, muy extendido en servidores y entornos HPC, y tras varios años de desarrollo más bien parado. El proyecto ha publicado las notas y los binarios en su repositorio de GitHub.

Buena parte del trabajo de esta entrega es deuda técnica: refactorización de código, corrección de errores, más cobertura de pruebas y limpiezas varias. No es el tipo de cambio que se note en un benchmark, pero sí en lo que cuesta mantener y portar el proyecto. También hay correcciones de avisos del compilador para GCC 16, algo que a quien empaquete jemalloc en una distribución le llegará antes o después.

Abstracción del sistema operativo

El bloque más interesante es la nueva capa de abstracción para el sistema operativo. Jemalloc separa ahora el código dependiente de plataforma que rodea a la entrada/salida de ficheros y procesos, el tiempo, la sincronización, la CPU, la memoria virtual, atfork, el manejo de errores, el perfilado, el thread-yield y el acceso a configuración. Traducido: llevar jemalloc a un sistema nuevo debería dejar de ser un ejercicio de bucear entre #ifdef repartidos por medio código.

En la parte de funciones nuevas aparecen dos que conviene mirar con detalle. Por un lado, EXTENT_ALLOC_FLAG_PINNED, pensado para los hooks de asignación de extent personalizados: permite marcar asignaciones como no reclamables, de modo que el asignador no intente recuperarlas. Por otro, la selección de arena por CPU a través de thread.arena, útil cuando el rendimiento depende de que cada hilo caiga en la arena correcta y no en la que toque por defecto.

A eso se suman varias optimizaciones nuevas que el anuncio no desglosa. Quien dependa de jemalloc en producción querrá revisar la lista completa de cambios antes de mover la versión, sobre todo si usa hooks propios o configuración de arenas por hilo.

Jemalloc lleva años siendo una pieza silenciosa de muchas pilas: aparece en bases de datos, en servicios de gran escala y en cualquier sitio donde el asignador del sistema se quede corto bajo carga concurrente. Que Meta haya vuelto a poner recursos encima no garantiza nada por sí solo, pero explica que el proyecto haya pasado de mantenimiento mínimo a publicar versiones con cambios de fondo en cuestión de meses.

Lo que queda por ver es si ese ritmo se sostiene. La capa de abstracción es la clase de trabajo que da frutos más adelante, cuando lleguen puertos a plataformas nuevas o cuando alguien tenga que depurar un fallo específico de un sistema operativo concreto. Por ahora, lo comprobable es que hay versión, que las notas están publicadas y que el código está en el repositorio.