Microsoft ha obert una biblioteca sota la llicència MIT
La característica clau de mimalloc és la seva implementació compacta (menys de 3500 línies de codi) i un alt rendiment. EN
Per avaluar el rendiment, un conjunt d'existents
L'alt rendiment s'aconsegueix principalment mitjançant l'ús de llistes de fragmentació gratuïtes. En lloc d'una llista gran, mimalloc utilitza una sèrie de llistes més petites, cadascuna de les quals està vinculada a una pàgina de memòria. Aquest enfocament redueix la fragmentació i augmenta la localitat de les dades a la memòria. Una pàgina de memòria és un conjunt agrupat de blocs de mida similar. En sistemes de 64 bits, la mida de la pàgina sol ser de 64 KB. Si no queden blocs ocupats a la pàgina, s'allibera completament i la memòria es retorna al sistema operatiu, la qual cosa redueix els costos de memòria i la fragmentació en programes de llarga durada.
La biblioteca es pot incloure en l'etapa d'enllaç o carregar-se per a un programa ja muntat ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). La biblioteca també ofereix
És possible construir la biblioteca en un mode segur, en què les pàgines especials de comprovació de memòria (pàgines de guarda) es substitueixen als límits del bloc, i s'utilitza l'aleatorització de la distribució de blocs i el xifratge de llistes de blocs alliberats. Aquestes mesures permeten bloquejar les tècniques més habituals per explotar desbordaments de memòria intermèdia basats en munt. Quan activeu el mode segur, el rendiment disminueix aproximadament un 3%.
Entre les característiques de mimalloc, també s'observa que no és susceptible a problemes d'inflor a causa de la gran fragmentació. En el pitjor dels casos, el consum de memòria augmenta un 0.2% per a les metadades i pot arribar al 16.7% per a la memòria distribuïda. Per evitar conflictes en accedir als recursos, mimalloc utilitza només operacions atòmiques.
Font: opennet.ru