Microsoft hefur opnað kóðann fyrir mimalloc minnisúthlutunarkerfið

Microsoft hefur opnað bókasafn undir MIT leyfinu mmalloc frá útfærslum á minnisúthlutunarkerfi sem upphaflega var búið til fyrir keyrsluíhluti tungumála Koka и Halla. Mimalloc er aðlagað til notkunar í stöðluðum forritum án þess að breyta kóða þeirra og getur virkað sem gagnsæ skipti fyrir malloc aðgerðina. Styður vinnu á Windows, macOS, Linux, BSD og öðrum Unix-líkum kerfum.

Lykilatriði mimalloc er fyrirferðarlítil útfærsla (minna en 3500 línur af kóða) og mjög mikil afköst. IN prófanir gerðar mimalloc stóð sig betur en öll minnisúthlutunarsöfn í samkeppni, þar á meðal jemalloc, tcmalloc, snmalloc, rpmalloc и Að hamstra.

Til að meta árangur, sett af núverandi staðlaðar prófanir Í sumum prófunum er mimalloc margfalt hraðari en önnur kerfi; til dæmis, í prófunum á flutningi hluta milli mismunandi þráða, reyndist mimalloc vera meira en 2.5 sinnum hraðari en tcmalloc og jemalloc. Á sama tíma, í flestum prófunum, kemur einnig fram minni minnisnotkun, í sumum tilfellum getur minnisnotkun minnkað um 25%.

Microsoft hefur opnað kóðann fyrir mimalloc minnisúthlutunarkerfið

Mikill árangur næst aðallega með því að nota ókeypis klippingu á lista. Í stað eins stórs lista notar mimalloc röð smærri lista, sem hver um sig er bundinn við minnissíðu. Þessi nálgun dregur úr sundrungu og eykur staðsetningu gagna í minni. Minnissíða er hópsett af blokkum af svipaðri stærð. Í 64-bita kerfum er síðustærðin venjulega 64 KB. Ef engar uppteknar blokkir eru eftir á síðunni losnar hún algjörlega og minninu er skilað inn í stýrikerfið sem dregur úr minniskostnaði og sundrungu í langvinnum forritum.

Bókasafnið getur verið með á tengingarstigi eða hlaðið fyrir þegar samsett forrit ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). Bókasafnið veitir einnig API til að samþætta virkni inn í keyrslutíma og fíngerða hegðunarstýringu, til dæmis til að tengja lausa minnisútgáfustýringar og eintóna auka viðmiðunarteljara. Það er hægt að búa til og nota nokkra „hauga“ í forriti til að dreifa á mismunandi minnissvæði. Það er líka hægt að losa hrúguna alveg, án þess að fara í gegnum og sérstaklega losa hlutina sem settir eru í hana.

Það er hægt að byggja bókasafnið á öruggan hátt, þar sem sérstakar minnisathugunarsíður (guard-pages) eru settar í staðinn við blokkamörkin, og slembival á blokkadreifingu og dulkóðun á listum yfir losaðar blokkir. Slíkar ráðstafanir gera það mögulegt að loka fyrir algengustu aðferðir til að nýta haug-undirstaða biðminni flæði. Þegar þú kveikir á öruggri stillingu minnkar árangur um það bil 3%.

Meðal eiginleika mimalloc er einnig tekið fram að það er ekki næmt fyrir vandamálum með uppþembu vegna mikillar sundrunar. Í versta falli eykst minnisnotkun um 0.2% fyrir lýsigögn og getur orðið 16.7% fyrir dreifð minni. Til að forðast árekstra þegar aðgangur er að auðlindum notar mimalloc aðeins atómaðgerðir.

Heimild: opennet.ru

Bæta við athugasemd