Ua wehe ʻo Microsoft i ke code no ka ʻōnaehana hoʻokaʻawale hoʻomanaʻo mimalloc

Ua wehe ʻo Microsoft i kahi waihona ma lalo o ka laikini MIT mmalloc mai ka hoʻokō ʻana i kahi ʻōnaehana hoʻomanaʻo i hana mua ʻia no nā ʻāpana holo o nā ʻōlelo Koka и Lean. Hoʻololi ʻia ʻo Mimalloc no ka hoʻohana ʻana i nā noi maʻamau me ka ʻole e hoʻololi i kā lākou code a hiki ke hana ma ke ʻano he pani hakahaka no ka hana malloc. Kākoʻo i ka hana ma Windows, macOS, Linux, BSD a me nā ʻōnaehana like me Unix.

ʻO ka hiʻohiʻona nui o ka mimalloc ʻo kāna hoʻokō paʻa (emi ma mua o 3500 laina o ke code) a me ka hana kiʻekiʻe loa. IN nā hoʻokolohua i hana ʻia ʻoi aku ka maikaʻi o ka mimalloc i nā hale waihona puke hoʻokaʻawale hoʻomanaʻo hoʻokūkū, me jemalloc, tcmalloc, snmalloc, rpmalloc и Hoard.

No ka loiloi i ka hana, kahi hoʻonohonoho o nā mea i loaʻa nā hoʻokolohua maʻamau I kekahi mau ho'āʻo, ʻoi aku ka wikiwiki o ka mimalloc ma mua o nā ʻōnaehana ʻē aʻe; no ka laʻana, i ka hoʻāʻo ʻana i ka neʻe ʻana o nā mea ma waena o nā kaula like ʻole, ua ʻoi aku ka mimalloc ma mua o 2.5 mau manawa ʻoi aku ka wikiwiki ma mua o ka tcmalloc a me ka jemalloc. I ka manawa like, i ka hapa nui o nā hoʻokolohua, ʻike ʻia ka hoʻohana haʻahaʻa haʻahaʻa; i kekahi mau kūlana, hiki ke hoʻemi ʻia ka hoʻohana ʻana i ka hoʻomanaʻo e 25%.

Ua wehe ʻo Microsoft i ke code no ka ʻōnaehana hoʻokaʻawale hoʻomanaʻo mimalloc

Loaʻa ka hana kiʻekiʻe ma o ka hoʻohana ʻana i ka sharding papa inoa manuahi. Ma kahi o hoʻokahi papa inoa nui, hoʻohana ʻo mimalloc i ke ʻano o nā papa inoa liʻiliʻi, ua paʻa kēlā me kēia i kahi ʻaoʻao hoʻomanaʻo. Hoʻemi kēia ala i ka ʻāpana a hoʻonui i ka wahi ʻikepili i ka hoʻomanaʻo. ʻO ka ʻaoʻao hoʻomanaʻo he pūʻulu pūʻulu o nā poloka like ka nui. Ma nā ʻōnaehana 64-bit, ʻo ka nui o ka ʻaoʻao he 64 KB. Inā ʻaʻohe mau poloka i waiho ʻia ma ka ʻaoʻao, ua hoʻokuʻu ʻia a hoʻihoʻi ʻia ka hoʻomanaʻo i ka ʻōnaehana hana, e hōʻemi ana i nā kumukūʻai hoʻomanaʻo a me nā ʻāpana i nā papahana lōʻihi.

Hiki ke hoʻokomo ʻia ka waihona ma ke kahua hoʻopili a hoʻouka ʻia no kahi papahana i ʻākoakoa mua ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). Hāʻawi pū ka waihona API no ka hoʻohui ʻana i ka hana i ka wā holo a me ka hoʻomalu ʻana i ka ʻano maikaʻi, no ka laʻana, no ka hoʻopili ʻana i nā mea hoʻokuʻu hoʻomanaʻo palaualelo a me ka hoʻonui monotonically i nā helu kuhikuhi. Hiki ke hana a hoʻohana i kekahi mau "puʻu" i loko o kahi noi no ka hāʻawi ʻana i nā wahi hoʻomanaʻo like ʻole. Hiki nō hoʻi ke hoʻokuʻu i ka puʻu, me ka hele ʻole a hoʻokaʻawale i nā mea i waiho ʻia i loko.

Hiki ke kūkulu i ka hale waihona puke ma kahi ʻano palekana, kahi i hoʻololi ʻia ai nā ʻaoʻao nānā hoʻomanaʻo kūikawā (nā ʻaoʻao kiaʻi) ma nā palena poloka, a hoʻohana ʻia ka randomization o ka hāʻawi ʻana a me ka hoʻopili ʻana i nā papa inoa o nā poloka i hoʻokuʻu ʻia. ʻO ia mau hana e hiki ai ke ālai i nā ʻenehana maʻamau no ka hoʻohana ʻana i ka hoʻoheheʻe ʻana o ka puʻu. Ke hiki iā ʻoe ke Safe Mode, e emi ana ka hana ma kahi o 3%.

Ma waena o nā hiʻohiʻona o ka mimalloc, ua ʻike ʻia ʻaʻole hiki ke maʻalahi i nā pilikia me ka bloating ma muli o ka ʻāpana nui. I ka hihia ʻino loa, hoʻonui ka hoʻohana ʻana i ka hoʻomanaʻo e 0.2% no ka metadata a hiki ke hōʻea i ka 16.7% no ka hoʻomanaʻo ʻana. No ka pale ʻana i nā paio ke komo i nā kumuwaiwai, hoʻohana ʻo mimalloc i nā hana atomika wale nō.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka