I-Microsoft ivule ikhodi yesistimu yokwabiwa kwememori ye-mimalloc

I-Microsoft ivule umtapo wolwazi ngaphansi kwelayisense ye-MIT mmalloc kusukela ekusetshenzisweni kwesistimu yokwabiwa kwememori ekuqaleni eyadalelwa izingxenye zesikhathi sokusebenza zezilimi I-Koka ΠΈ Kulungile. I-Mimalloc iguqulelwe ukuze isetshenziswe ezinhlelweni ezijwayelekile ngaphandle kokushintsha ikhodi yazo futhi ingasebenza njengokumiselela okusobala komsebenzi we-malloc. Isekela ukusebenza ku-Windows, macOS, Linux, BSD nakwezinye izinhlelo ezifana ne-Unix.

Isici esiyinhloko se-mimalloc ukuqaliswa kwayo okuhlangene (ngaphansi kwemigqa yekhodi ye-3500) nokusebenza okuphezulu kakhulu. IN ukuhlolwa okwenziwe i-mimalloc isebenze kahle kakhulu kunawo wonke amamitapo olwazi okwabiwa kwenkumbulo aqhudelanayo, okuhlanganisa ijemalloc, tcmalloc, snmalloc, rpmalloc ΠΈ Ukuqoqwa.

Ukuze uhlole ukusebenza, isethi ekhona ukuhlolwa okujwayelekile Kwezinye izivivinyo, i-mimalloc ishesha izikhathi eziningi kunezinye izinhlelo; isibonelo, ekuhlolweni kokufuduka kwento phakathi kwemicu ehlukene, i-mimalloc ibonakale ishesha izikhathi ezingaphezu kuka-2.5 kune-tcmalloc ne-jemalloc. Ngasikhathi sinye, ezivivinyweni eziningi, ukusetshenziswa kwememori okuphansi nakho kuyabonwa; kwezinye izimo, ukusetshenziswa kwenkumbulo kungancishiswa ngo-25%.

I-Microsoft ivule ikhodi yesistimu yokwabiwa kwememori ye-mimalloc

Ukusebenza okuphezulu kufinyelelwa ikakhulukazi ngokusebenzisa i-sharding yohlu lwamahhala. Esikhundleni sohlu olulodwa olukhulu, i-mimalloc isebenzisa uchungechunge lohlu oluncane, ngalunye oluboshelwe ekhasini lememori. Le ndlela inciphisa ukuhlukana futhi ikhulise indawo yedatha kumemori. Ikhasi lememori liyisethi eqoqwe yamabhulokhi anosayizi ofanayo. Kumasistimu angama-64-bit, usayizi wekhasi uvamise ukuba ngu-64 KB. Uma kungekho amabhulokhi abanjwe asele ekhasini, ikhululwe ngokuphelele futhi inkumbulo ibuyiselwa ohlelweni lokusebenza, okunciphisa izindleko zememori nokuhlukaniswa ezinhlelweni ezisebenza isikhathi eside.

Umtapo wolwazi ungafakwa esigabeni sokuxhumanisa noma ulayishwe ngohlelo oseluvele luhlanganisiwe (β€œLD_PRELOAD=/usr/bin/libmimalloc.so myprogram”). Umtapo wolwazi nawo uyahlinzeka API ukuze kuhlanganiswe ukusebenza kusikhathi sokusebenza kanye nokulawulwa kokuziphatha okuhlelwe kahle, isibonelo, ukuxhuma izibambi zokukhululwa kwenkumbulo ezibambezelekile kanye nezibali zereferensi ezikhuphula ngokulinganayo. Kungenzeka ukudala nokusebenzisa "izinqwaba" ezimbalwa kuhlelo lokusebenza ukuze zisatshalaliswe ezindaweni ezahlukene zememori. Kungenzeka futhi ukukhulula inqwaba ngokuphelele, ngaphandle kokudlula nokukhulula ngokuhlukana izinto ezibekwe kuyo.

Kungenzeka ukwakha umtapo wezincwadi ngendlela ephephile, lapho amakhasi okuhlola inkumbulo akhethekile (amakhasi onogada) ashintshwa emingceleni ye-block, futhi kusetshenziswa i-randomization yokusabalalisa ibhulokhi kanye nokubethela kohlu lwamabhulokhi akhululiwe. Izinyathelo ezinjalo zenza kube nokwenzeka ukuvimba izindlela ezivame kakhulu zokuxhaphaza ukuchichima kwebhafa okususelwa kunqwaba. Uma unika amandla Imodi Ephephile, ukusebenza kwehla cishe ngo-3%.

Phakathi kwezici ze-mimalloc, kuphinde kuphawulwe ukuthi akuthinteki ezinkingeni zokuqunjelwa ngenxa yokuqhekeka okukhulu. Esimeni esibi kakhulu, ukusetshenziswa kwenkumbulo kukhuphuka ngo-0.2% kumethadatha futhi kungafinyelela ku-16.7% kumemori esabalalisiwe. Ukuze ugweme izingxabano lapho ufinyelela izinsiza, i-mimalloc isebenzisa imisebenzi ye-athomu kuphela.

Source: opennet.ru

Engeza amazwana