Microsoft het 'n biblioteek onder die MIT-lisensie geopen
Die sleutelkenmerk van mimalloc is sy kompakte implementering (minder as 3500 reëls kode) en baie hoë werkverrigting. IN
Om die prestasie te evalueer, 'n stel van reeds bestaande
Hoë werkverrigting word hoofsaaklik behaal deur die gebruik van gratis lysversplintering. In plaas van 'n enkele groot lys, gebruik mimalloc 'n reeks kleiner lyste, elk gebind aan 'n bladsy geheue. Hierdie benadering verminder fragmentasie en verbeter datalokalisering in geheue. 'n Geheuebladsy is 'n gegroepeerde stel blokke van soortgelyke grootte. Op 64-bis-stelsels is die bladsygrootte tipies 64 KB. As daar geen besette blokke op die bladsy oor is nie, word dit heeltemal bevry en word geheue na die bedryfstelsel teruggestuur, wat geheuekoste en fragmentasie in langlopende programme verminder.
Die biblioteek kan by die koppelingstadium ingesluit word of gelaai word vir 'n reeds geboude program ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). Die biblioteek verskaf ook
Dit is moontlik om die biblioteek in veilige modus te bou, waarin spesiale geheuekontrolebladsye (wagbladsy) by die blokgrens vervang word, en blokverspreiding ewekansig en lyste van vrygestelde blokke geënkripteer word. Sulke maatreëls laat die meeste tipiese hoopbuffer-oorloop-uitbuitingstegnieke blokkeer. Wanneer jy veilige modus aktiveer, word werkverrigting met ongeveer 3% verminder.
Van die kenmerke van mimalloc word ook opgemerk dat dit nie vatbaar is vir opblaasprobleme met groot fragmentasie nie. In die ergste geval verhoog geheueverbruik met 0.2% vir metadata en kan dit so hoog as 16.7% wees vir gedeelde geheue. Om konflikte te vermy wanneer toegang tot hulpbronne verkry word, gebruik mimalloc slegs atoombewerkings.
Bron: opennet.ru