Libumem

libumem is a memory allocator userspace library used to manage memory allocation,[1][2] and may be used to detect memory management bugs in applications. It is based on the Slab allocator concept. Libumem is available as a standard part of Solaris from Solaris 9 Update 3 onwards.

Functions

Functions in this library provide fast, scalable object-caching memory allocation with multithreaded application support. In addition to the standard malloc(3C) family of functions and the more flexible umem_alloc(3MALLOC) family, libumem provides powerful object-caching services as described in umem_cache_create(3MALLOC).[3]

Getting started with libumem is easy; just set LD_PRELOAD to "libumem.so" and any program executed will use libumem's malloc(3C) and free(3C) (or new and delete). [4] This slab allocator is designed for systems with many threads and many CPUs. Memory allocation with naive allocators can be a serious bottleneck.

See also

  • Valgrind

Sources

  1. ^ "Proceedings of the 2001 USENIX Annual Technical Conference" (PDF). The USENIX Association. 2001.
  2. ^ "github / omniti-labs / portableumem". github.com. 27 Jun 2010. Retrieved 2020-08-04.
  3. ^ "Memory Leak Detection with libumem". Archived from the original on 2013-10-23. Retrieved 2013-10-22.
  4. ^ "Adam Leventhal's Weblog". Archived from the original on 2017-03-25.
  • Portable Umem: An opensource effort to port libumem to other UNIX-like systems
  • v
  • t
  • e
Memory management
  • Memory management as a function of an operating system
Hardware
Virtual memory
  • Demand paging
  • Memory paging
  • Page table
  • Virtual memory compression
Memory segmentation
  • Protected mode
  • Real mode
  • Virtual 8086 mode
  • x86 memory segmentation
Memory allocator
Manual memory managementGarbage collectionMemory safetyIssuesOther
  • Memory management
  • Virtual memory
  • Automatic memory management
  • Memory management algorithms
  • Memory management software