„Microsoft“ atidarė biblioteką pagal MIT licenciją
Pagrindinė mimalloc ypatybė yra kompaktiškas įgyvendinimas (mažiau nei 3500 kodo eilučių) ir labai didelis našumas. IN
Norint įvertinti našumą, esamų rinkinys
Didelis našumas pasiekiamas daugiausia naudojant nemokamą sąrašo dalijimąsi. Vietoj vieno didelio sąrašo, mimalloc naudoja keletą mažesnių sąrašų, kurių kiekvienas yra susietas su atminties puslapiu. Šis metodas sumažina suskaidymą ir padidina duomenų vietą atmintyje. Atminties puslapis yra sugrupuotas panašaus dydžio blokų rinkinys. 64 bitų sistemose puslapio dydis paprastai yra 64 KB. Jei puslapyje nelieka užimtų blokų, jis visiškai atlaisvinamas ir atmintis grąžinama operacinei sistemai, o tai sumažina atminties sąnaudas ir fragmentaciją ilgai veikiančiose programose.
Biblioteka gali būti įtraukta susiejimo etape arba įkeliama jau surinktai programai („LD_PRELOAD=/usr/bin/libmimalloc.so myprogram“). Biblioteka taip pat teikia
Biblioteką galima kurti saugiuoju režimu, kai blokų ribose pakeičiami specialūs atminties tikrinimo puslapiai (apsauginiai puslapiai), naudojamas blokų paskirstymo atsitiktinis atskyrimas ir atlaisvintų blokų sąrašų šifravimas. Tokios priemonės leidžia blokuoti dažniausiai naudojamus buferio perpildymo krūvoje būdus. Kai įjungiate saugųjį režimą, našumas sumažėja maždaug 3%.
Tarp mimalloko savybių taip pat pažymima, kad dėl didelio susiskaidymo jis nėra jautrus pilvo pūtimo problemoms. Blogiausiu atveju metaduomenų atminties suvartojimas padidėja 0.2%, o paskirstytoje atmintyje gali siekti 16.7%. Kad išvengtų konfliktų, kai pasiekiate išteklius, mimalloc naudoja tik atomines operacijas.
Šaltinis: opennet.ru