либум
libumem — это библиотека пользовательского пространства распределителя памяти, используемая для управления распределением памяти, [1] [2] и может использоваться для обнаружения ошибок управления памятью в приложениях. Он основан на концепции распределителя Slab . Libumem доступен как стандартная часть Solaris, начиная с версии Solaris 9 Update 3.
Функции
[ редактировать ]Функции в этой библиотеке обеспечивают быстрое и масштабируемое выделение памяти для кэширования объектов с поддержкой многопоточных приложений. В дополнение к стандартному семейству функций malloc(3C) и более гибкому семейству umem_alloc(3MALLOC), libumem предоставляет мощные службы кэширования объектов, как описано в umem_cache_create(3MALLOC). [3]
Начать работу с libumem легко; просто установите для LD_PRELOAD значение «libumem.so», и любая выполняемая программа будет использовать malloc(3C) и free(3C) libumem (или создать и удалить). [4] Этот распределитель блоков предназначен для систем со многими потоками и множеством процессоров. Распределение памяти с помощью наивных распределителей может стать серьезным узким местом.
См. также
[ редактировать ]Источники
[ редактировать ]- ^ «Материалы ежегодной технической конференции USENIX 2001 г.» (PDF) . Ассоциация USENIX. 2001.
- ^ «github/omniti-labs/portableumem» . github.com. 27 июня 2010 г. Проверено 4 августа 2020 г.
- ^ «Обнаружение утечки памяти с помощью libumem» . Архивировано из оригинала 23 октября 2013 г. Проверено 22 октября 2013 г.
- ^ «Блог Адама Левенталя» . Архивировано из оригинала 25 марта 2017 г.