Microsoft ka hapur një bibliotekë nën licencën MIT
Tipari kryesor i mimalloc është zbatimi i tij kompakt (më pak se 3500 rreshta kodi) dhe performanca shumë e lartë. NË
Për të vlerësuar performancën, një grup ekzistues
Performanca e lartë arrihet kryesisht përmes përdorimit të ndarjes së listës falas. Në vend të një liste të madhe, mimalloc përdor një seri listash më të vogla, secila prej të cilave është e lidhur në një faqe memorie. Kjo qasje redukton fragmentimin dhe rrit lokalitetin e të dhënave në memorie. Një faqe memorie është një grup i grupuar blloqesh me madhësi të ngjashme. Në sistemet 64-bit, madhësia e faqes është zakonisht 64 KB. Nëse nuk ka mbetur asnjë blloqe të zënë në faqe, ajo çlirohet plotësisht dhe memoria kthehet në sistemin operativ, gjë që redukton kostot e memories dhe fragmentimin në programet që funksionojnë gjatë.
Biblioteka mund të përfshihet në fazën e lidhjes ose të ngarkohet për një program tashmë të montuar (“LD_PRELOAD=/usr/bin/libmimalloc.so myprogram”). Biblioteka gjithashtu ofron
Është e mundur të ndërtohet biblioteka në një mënyrë të sigurt, në të cilën faqet speciale të kontrollit të memories (faqet roje) zëvendësohen në kufijtë e bllokut, dhe përdoret rastësia e shpërndarjes së bllokut dhe kriptimi i listave të blloqeve të liruara. Masa të tilla ju lejojnë të bllokoni shumicën e teknikave tipike për shfrytëzimin e tejmbushjeve të tamponit të bazuara në grumbull. Kur aktivizoni modalitetin e sigurt, performanca ulet me afërsisht 3%.
Ndër veçoritë e mimallocit, vërehet gjithashtu se nuk është i ndjeshëm ndaj problemeve me fryrje për shkak të fragmentimit të madh. Në skenarin më të keq, konsumi i memories rritet me 0.2% për meta të dhënat dhe mund të arrijë në 16.7% për memorien e shpërndarë. Për të shmangur konfliktet kur hyn në burime, mimalloc përdor vetëm operacione atomike.
Burimi: opennet.ru