Microsoft otevřel knihovnu pod licencí MIT
Klíčovou vlastností mimalloc je jeho kompaktní implementace (méně než 3500 řádků kódu) a velmi vysoký výkon. V
Chcete-li vyhodnotit výkon, soubor existujících
Vysokého výkonu je dosaženo především využitím volného shardingu seznamu. Místo jednoho velkého seznamu používá mimalloc řadu menších seznamů, z nichž každý je vázán na paměťovou stránku. Tento přístup snižuje fragmentaci a zvyšuje umístění dat v paměti. Paměťová stránka je seskupená sada bloků podobné velikosti. Na 64bitových systémech je velikost stránky obvykle 64 kB. Pokud na stránce nezůstanou žádné obsazené bloky, je zcela uvolněna a paměť je vrácena operačnímu systému, což snižuje náklady na paměť a fragmentaci u dlouho běžících programů.
Knihovnu lze zahrnout ve fázi propojení nebo načíst pro již sestavený program („LD_PRELOAD=/usr/bin/libmimalloc.so myprogram“). Knihovna také poskytuje
Knihovnu je možné vybudovat v bezpečném režimu, ve kterém se na hranicích bloků nahrazují speciální stránky kontroly paměti (ochranné stránky) a používá se náhodná distribuce bloků a šifrování seznamů uvolněných bloků. Taková opatření umožňují blokovat většinu běžných technik pro využívání přetečení vyrovnávací paměti založené na haldě. Když povolíte nouzový režim, výkon se sníží přibližně o 3 %.
Mezi rysy mimalloc je také třeba poznamenat, že není náchylný k problémům s nadýmáním kvůli velké fragmentaci. V nejhorším případě se spotřeba paměti zvýší o 0.2 % u metadat a může dosáhnout 16.7 % u distribuované paměti. Aby se zabránilo konfliktům při přístupu ke zdrojům, používá mimalloc pouze atomické operace.
Zdroj: opennet.ru