Libumem Explained

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

Sources

Notes and References

  1. Web site: Proceedings of the 2001 USENIX Annual Technical Conference . 2001 . The USENIX Association .
  2. Web site: github / omniti-labs / portableumem . 27 Jun 2010 . 2020-08-04 . github.com .
  3. Web site: Memory Leak Detection with libumem . 2013-10-22 . https://web.archive.org/web/20131023055511/https://blogs.oracle.com/dlutz/entry/memory_leak_detection_with_libumem . 2013-10-23 . dead .
  4. Web site: Adam Leventhal's Weblog . https://web.archive.org/web/20170325113113/https://blogs.oracle.com/ahl/entry/solaris_10_top_11_20 . 2017-03-25 . dead .