Spaces: Nuevo Asignador de Memoria para Linux

Fuentes: New C Allocator 'Spaces' Offers Explicit Heap Regions for Enhanced Memory Control

Un nuevo asignador de memoria llamado 'Spaces' ha sido desarrollado para Linux x86-64, ofreciendo una alternativa a malloc con características avanzadas para un control más preciso de la memoria. Spaces, disponible como un único archivo de código fuente, permite la creación de regiones de memoria explícitas, lo que facilita la gestión de la memoria para subprocesos específicos, la limitación de su uso y la inspección de asignaciones en vivo. Esto es particularmente útil para tareas como la gestión de árboles de análisis sintáctico (AST) en compiladores o la creación de cachés con límites de memoria estrictos. A diferencia de los asignadores rápidos tradicionales (jemalloc, tcmalloc) que son 'cajas negras', o los asignadores de regiones que carecen de eficiencia general, Spaces busca combinar velocidad y estructura. El diseño introduce un pequeño costo de rendimiento (aproximadamente 5 ns por llamada a free()) al leer un encabezado de slab, pero a cambio elimina la necesidad de estructuras de metadatos externas. Spaces también ofrece funciones como caminata de asignaciones en vivo, límites de memoria por región y heaps compartidos entre procesos. En pruebas comparativas, Spaces ha demostrado ser competitivo con otros asignadores, destacando en escenarios de alta rotación de subprocesos, aunque con una ligera desventaja en cargas de trabajo con tamaños de asignación muy variables.