A Microsoft megnyitott egy könyvtárat az MIT licenc alatt
A mimalloc legfontosabb jellemzője a kompakt megvalósítás (kevesebb, mint 3500 kódsor) és a nagyon nagy teljesítmény. BAN BEN
A teljesítmény értékeléséhez a meglévők halmaza
A nagy teljesítmény elsősorban a szabad listafelosztás használatával érhető el. Egy nagy lista helyett a mimalloc egy sor kisebb listát használ, amelyek mindegyike egy memóriaoldalhoz van kötve. Ez a megközelítés csökkenti a töredezettséget és növeli az adatok helyét a memóriában. A memórialap hasonló méretű blokkok csoportos halmaza. 64 bites rendszereken az oldal mérete általában 64 KB. Ha nem marad elfoglalt blokk az oldalon, akkor az teljesen felszabadul, és a memória visszakerül az operációs rendszerbe, ami csökkenti a memóriaköltséget és a hosszan futó programok töredezettségét.
A könyvtár beépíthető a linkelési szakaszba, vagy betölthető egy már összeállított programhoz („LD_PRELOAD=/usr/bin/libmimalloc.so myprogram”). A könyvtár is biztosítja
Lehetőség van a könyvtár biztonságos módban történő felépítésére, amelyben a blokkhatárokon speciális memória-ellenőrző oldalakat (védőoldalakat) helyettesítenek, és a blokkok elosztásának randomizálását és a felszabadult blokkok listáinak titkosítását alkalmazzák. Az ilyen intézkedések lehetővé teszik a halom alapú puffertúlcsordulások kihasználására szolgáló leggyakoribb technikák blokkolását. Ha engedélyezi a Biztonságos módot, a teljesítmény körülbelül 3%-kal csökken.
A mimalloc jellemzői között azt is meg kell jegyezni, hogy a nagy töredezettség miatt nem érzékeny a puffadásos problémákra. A legrosszabb esetben a memóriafogyasztás 0.2%-kal nő a metaadatoknál, és elérheti a 16.7%-ot az elosztott memória esetében. Az erőforrásokhoz való hozzáférés során felmerülő konfliktusok elkerülése érdekében a mimalloc csak atomi műveleteket használ.
Forrás: opennet.ru