Microsoft on avannut kirjaston MIT-lisenssillä
Mimallocin tärkein ominaisuus on sen kompakti toteutus (alle 3500 koodiriviä) ja erittäin korkea suorituskyky. SISÄÄN
Suorituksen arvioimiseksi joukko olemassa olevia
Korkea suorituskyky saavutetaan pääasiassa vapaan listan jakamisen avulla. Yhden suuren luettelon sijasta mimalloc käyttää sarjaa pienempiä listoja, joista jokainen on sidottu muistisivulle. Tämä lähestymistapa vähentää pirstoutumista ja lisää tietojen sijaintia muistissa. Muistisivu on ryhmitelty joukko samankokoisia lohkoja. 64-bittisissä järjestelmissä sivun koko on yleensä 64 kt. Jos sivulla ei ole enää yhtään varattua lohkoa, se vapautetaan kokonaan ja muisti palautetaan käyttöjärjestelmään, mikä vähentää muistikustannuksia ja pirstoutumista pitkään käynnissä olevissa ohjelmissa.
Kirjasto voidaan sisällyttää linkitysvaiheeseen tai ladata jo koottuun ohjelmaan ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). Kirjasto tarjoaa myös
Kirjasto on mahdollista rakentaa turvatilassa, jossa lohkorajoilla korvataan erityiset muistin tarkistussivut (suojasivut) ja käytetään lohkojakauman satunnaistamista ja vapautettujen lohkojen luetteloiden salausta. Tällaiset toimenpiteet mahdollistavat yleisimmät tekniikat kasopohjaisten puskurin ylivuotojen hyödyntämiseksi. Kun otat vikasietotilan käyttöön, suorituskyky heikkenee noin 3 %.
Mimallocin ominaisuuksien joukossa on myös huomattava, että se ei ole altis turvotukseen liittyville ongelmille suuren pirstoutumisen vuoksi. Pahimmassa tapauksessa muistin kulutus kasvaa 0.2 % metatiedon osalta ja voi nousta 16.7 % hajautetun muistin osalta. Välttääkseen ristiriidat resursseja käytettäessä mimalloc käyttää vain ydintoimintoja.
Lähde: opennet.ru