libumem es una biblioteca de espacio de usuario para la asignación de memoria, utilizada para gestionar la asignación de memoria [ 1 ] [ 2 ] y que puede emplearse para detectar errores de gestión de memoria en las aplicaciones. Se basa en el concepto de asignador de bloques (Slab) . libumem está disponible como parte estándar de Solaris a partir de Solaris 9 Update 3.
Funciones
Las funciones de esta biblioteca proporcionan una asignación de memoria de caché de objetos rápida y escalable con soporte para aplicaciones multihilo . Además de la familia de funciones estándar malloc(3C) y la familia más flexible umem_alloc(3MALLOC), libumem proporciona potentes servicios de caché de objetos, como se describe en umem_cache_create(3MALLOC). [ 3 ]
Empezar a usar libumem es fácil; basta con establecer LD_PRELOAD en "libumem.so" y cualquier programa ejecutado utilizará malloc(3C) y free(3C) de libumem (o new y delete). [ 4 ] Este asignador de memoria está diseñado para sistemas con muchos hilos y muchas CPU. La asignación de memoria con asignadores ingenuos puede ser un cuello de botella importante.
Véase también
Fuentes
- ↑ "Actas de la Conferencia Técnica Anual de USENIX de 2001" (PDF) . La Asociación USENIX. 2001.
- ↑ "github / omniti-labs / portableumem" . github.com. 27 de junio de 2010 . Consultado el 4 de agosto de 2020 .
- ↑ "Detección de fugas de memoria con libumem" . Archivado del original el 23/10/2013 . Consultado el 22/10/2013 .
- ↑ "Blog de Adam Leventhal" . Archivado del original el 25 de marzo de 2017.
- Umem portátil: Un proyecto de código abierto para portar libumem a otros sistemas tipo UNIX.
- OpenSolaris
- Software Solaris