Small block allocator on Linux (or RedHat Linux) to avoid memory fragmentation

I know that for custom applications there is a distributor, which processes a large number of small blocks on the HP-UX link text and on Windows XP A lot of low fragmentation . The distributor can be configured on HP-UX, and in Windows XP it considers a block smaller than 16K small.

My problem is that I can not find any information about this type of distributor for user programs running on Linux (actually RedHat Linux). If there is such a allocator, I really would like to find what maximum block size it can handle.

<h / "> Update
I found jemalloc ( http://www.canonware.com/jemalloc/ ). It processes small, large and huge blocks: http://www.canonware.com/download/jemalloc/jemalloc-latest /doc/jemalloc.html#size_classes .

+2
source share
4 answers

Redhat Linux or any Linux-based distributions use DL-Malloc ( http://gee.cs.oswego.edu/dl/html/malloc.html ).

For custom applications, as Kirill pointed out, it is better to use separate memory allocators if fragmentation is greater due to smaller blocks.

, / ++, . (http://en.wikipedia.org/wiki/Placement_syntax)

+3

, Boost.Pool. pool, . pool_alloc, .

mallopt glibc. , , .

+3

, Hoard heap , " " [1]:

. , b ( b 1) , b. , .

, , .

+1

Source: https://habr.com/ru/post/1779583/


All Articles