Mikrosofto malfermis bibliotekon sub la MIT-licenco
La ĉefa trajto de mimalloc estas ĝia kompakta efektivigo (malpli ol 3500 linioj de kodo) kaj tre alta rendimento. EN
Por taksi rendimenton, aro de ekzistantaj
Alta rendimento estas atingita ĉefe per la uzo de senpaga listo sharding. Anstataŭ unu granda listo, mimalloc uzas serion de pli malgrandaj listoj, ĉiu el kiuj estas ligita al memorpaĝo. Ĉi tiu aliro reduktas fragmentiĝon kaj pliigas datumlokon en memoro. Memorpaĝo estas grupigita aro de blokoj de simila grandeco. En 64-bitaj sistemoj, la paĝgrandeco estas tipe 64 KB. Se ne restas okupataj blokoj en la paĝo, ĝi estas tute liberigita kaj la memoro estas resendita al la operaciumo, kio reduktas memorkostojn kaj fragmentiĝon en longdaŭraj programoj.
La biblioteko povas esti inkludita en la ligofazo aŭ ŝarĝita por jam kunmetita programo ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). La biblioteko ankaŭ provizas
Eblas konstrui la bibliotekon en sekura reĝimo, en kiu specialaj memorkontrolpaĝoj (gard-paĝoj) estas anstataŭigitaj ĉe la bloklimoj, kaj hazardigo de blokdistribuo kaj ĉifrado de listoj de liberigitaj blokoj estas uzataj. Tiaj mezuroj ebligas bloki plej oftajn teknikojn por ekspluati amas-bazitajn bufrosuperfluojn. Kiam vi ebligas Sekuran Reĝimon, rendimento malpliiĝas je proksimume 3%.
Inter la trajtoj de mimalloc, oni ankaŭ rimarkas, ke ĝi ne estas susceptible al problemoj kun ŝvelado pro granda fragmentiĝo. En la plej malbona kazo, memorkonsumo pliiĝas je 0.2% por metadatenoj kaj povas atingi 16.7% por distribuita memoro. Por eviti konfliktojn alirante resursojn, mimalloc uzas nur atomajn operaciojn.
fonto: opennet.ru