Microsoft je otvorio knjižnicu pod licencom MIT-a
Ključna značajka mimalloca je njegova kompaktna implementacija (manje od 3500 redaka koda) i vrlo visoke performanse. U
Za procjenu izvedbe, skup postojećih
Visoke performanse uglavnom se postižu upotrebom besplatnog dijeljenja popisa. Umjesto jednog velikog popisa, mimalloc koristi niz manjih popisa, od kojih je svaki vezan za memorijsku stranicu. Ovaj pristup smanjuje fragmentaciju i povećava lokalizaciju podataka u memoriji. Memorijska stranica je grupiran skup blokova slične veličine. Na 64-bitnim sustavima veličina stranice je obično 64 KB. Ako na stranici nema preostalih zauzetih blokova, ona se potpuno oslobađa i memorija se vraća operativnom sustavu, što smanjuje troškove memorije i fragmentaciju u dugotrajnim programima.
Knjižnica se može uključiti u fazi povezivanja ili učitati za već sastavljeni program (“LD_PRELOAD=/usr/bin/libmimalloc.so myprogram”). Knjižnica također nudi
Moguće je izgraditi biblioteku u sigurnom načinu rada, u kojem se posebne stranice za provjeru memorije (guard-pages) zamjenjuju na granicama blokova, a koristi se randomizacija distribucije blokova i šifriranje popisa oslobođenih blokova. Takve mjere omogućuju blokiranje najčešćih tehnika za iskorištavanje prekoračenja međuspremnika temeljenog na hrpi. Kada omogućite Safe Mode, izvedba se smanjuje za približno 3%.
Među značajkama mimalloka također je navedeno da nije osjetljiv na probleme s nadutošću zbog velike fragmentacije. U najgorem slučaju, potrošnja memorije povećava se za 0.2% za metapodatke i može doseći 16.7% za distribuiranu memoriju. Kako bi se izbjegli sukobi prilikom pristupa resursima, mimalloc koristi samo atomske operacije.
Izvor: opennet.ru