Microsoft huet eng Bibliothéik ënner der MIT Lizenz opgemaach
D'Schlëssel Feature vu mimalloc ass seng kompakt Ëmsetzung (manner wéi 3500 Zeilen Code) a ganz héich Leeschtung. IN
Ze evaluéieren Leeschtung, eng Rei vun bestehend
Héich Leeschtung gëtt haaptsächlech duerch d'Benotzung vu gratis Lëscht Sharding erreecht. Amplaz vun enger grousser Lëscht benotzt mimalloc eng Serie vu méi klengen Lëschten, déi jidderee mat enger Erënnerungssäit gebonnen ass. Dës Approche reduzéiert Fragmentatioun a vergréissert d'Datenlokalitéit an der Erënnerung. Eng Erënnerungssäit ass e gruppéierte Set vu Blocks vun ähnlecher Gréisst. Op 64-Bit Systemer ass d'Säitgréisst typesch 64 KB. Wann et keng besat Blocken op der Säit sinn, gëtt se komplett befreit an d'Erënnerung gëtt an de Betribssystem zréckgezunn, wat d'Erënnerungskäschte an d'Fragmentatioun a laang lafende Programmer reduzéiert.
D'Bibliothéik kann op der Verknüpfungsstadium abegraff ginn oder fir e scho montéierte Programm gelueden ginn ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). D'Bibliothéik bitt och
Et ass méiglech d'Bibliothéik an engem séchere Modus ze bauen, an deem spezielle Gedächtnisprüfungssäiten (Guard-Säiten) op de Blockgrenzen ersat ginn, an d'Randomiséierung vun der Blockverdeelung an d'Verschlësselung vu Lëschte vu befreit Blocken benotzt ginn. Esou Moossnamen maachen et méiglech déi meescht üblech Technike fir d'Ausbeutung vun Heap-baséiert Puffer Iwwerfloss ze blockéieren. Wann Dir de Safe Mode aktivéiert, geet d'Performance ëm ongeféier 3% erof.
Ënnert de Fonctiounen vum Mimalloc ass et och bemierkt datt et net ufälleg ass fir Probleemer mat Bloating wéinst grousser Fragmentatioun. Am schlëmmste Fall Szenario erhéicht de Gedächtnisverbrauch ëm 0.2% fir Metadaten a kann 16.7% fir verdeelt Erënnerung erreechen. Fir Konflikter beim Zougang zu Ressourcen ze vermeiden, benotzt mimalloc nëmmen atomar Operatiounen.
Source: opennet.ru