Microsoft otvoril knižnicu pod licenciou MIT
Kľúčovou vlastnosťou mimalloc je jeho kompaktná implementácia (menej ako 3500 riadkov kódu) a veľmi vysoký výkon. IN
Na vyhodnotenie výkonnosti súbor existujúcich
Vysoký výkon sa dosahuje najmä použitím voľného shardingu zoznamu. Namiesto jedného veľkého zoznamu používa mimalloc sériu menších zoznamov, z ktorých každý je viazaný na pamäťovú stránku. Tento prístup znižuje fragmentáciu a zvyšuje lokalizáciu údajov v pamäti. Pamäťová stránka je zoskupený súbor blokov podobnej veľkosti. Na 64-bitových systémoch je veľkosť stránky zvyčajne 64 kB. Ak na stránke nezostanú žiadne obsadené bloky, stránka sa úplne uvoľní a pamäť sa vráti operačnému systému, čo znižuje náklady na pamäť a fragmentáciu v dlho spustených programoch.
Knižnica môže byť zahrnutá vo fáze spájania alebo načítaná pre už zostavený program („LD_PRELOAD=/usr/bin/libmimalloc.so myprogram“). Knižnica tiež poskytuje
Knižnicu je možné vybudovať v bezpečnom režime, v ktorom sa na hraniciach blokov nahrádzajú špeciálne stránky kontroly pamäte (ochranné stránky), používa sa náhodná distribúcia blokov a šifrovanie zoznamov uvoľnených blokov. Takéto opatrenia umožňujú blokovať najbežnejšie techniky využívania pretečenia vyrovnávacej pamäte na báze haldy. Keď povolíte núdzový režim, výkon sa zníži približne o 3 %.
Medzi vlastnosti mimallocu je tiež potrebné poznamenať, že nie je náchylný na problémy s nadúvaním v dôsledku veľkej fragmentácie. V najhoršom prípade sa spotreba pamäte zvýši o 0.2 % pre metadáta a môže dosiahnuť 16.7 % pre distribuovanú pamäť. Aby sa predišlo konfliktom pri prístupe k zdrojom, mimalloc používa iba atómové operácie.
Zdroj: opennet.ru