Microsoft e butse khoutu bakeng sa sistimi ea kabo ea memori ea mimalloc

Microsoft e butse laeborari tlasa laesense ea MIT mmalloc ho tsoa ho ts'ebetsong ea sistimi ea kabo ea memori e qapiloeng bakeng sa likarolo tsa nako ea ho sebetsa ea lipuo Koka и Ema. Mimalloc e ikamahanya le maemo hore e sebelisoe lits'ebetsong tse tloaelehileng ntle le ho fetola khoutu ea bona mme e ka sebetsa joalo ka phetisetso e hlakileng bakeng sa ts'ebetso ea malloc. E tšehetsa mosebetsi ho Windows, macOS, Linux, BSD le lits'ebetso tse ling tse kang Unix.

Ntho e ka sehloohong ea mimalloc ke ts'ebetsong ea eona e kopanetsoeng (e ka tlaase ho mela e 3500 ea khoutu) le ts'ebetso e phahameng haholo. IN liteko tse entsoeng mimalloc e fetisitse lilaebrari tsohle tse hlolisanoang tsa kabo ea memori, ho kenyeletsoa jemalloc, tcmalloc, snmalloc, rpmalloc и Boloka.

Ho lekola ts'ebetso, sete ea tse teng liteko tse tloaelehileng Litekong tse ling, mimalloc e potlakile ka makhetlo a mangata ho feta lits'ebetso tse ling; mohlala, tekong ea ho falla ha ntho lipakeng tsa likhoele tse fapaneng, mimalloc e bile lebelo le fetang makhetlo a 2.5 ho feta tcmalloc le jemalloc. Ka nako e ts'oanang, litekong tse ngata, tšebeliso e tlase ea mohopolo e boetse e bonoa; maemong a mang, tšebeliso ea mohopolo e ka fokotsoa ka 25%.

Microsoft e butse khoutu bakeng sa sistimi ea kabo ea memori ea mimalloc

Ts'ebetso e phahameng e finyelloa haholo-holo ka tšebeliso ea ho sharding ea lenane la mahala. Ho e-na le lethathamo le le leng le leholo, mimalloc e sebelisa letoto la manane a manyenyane, ao le leng le le leng la lona le tlamelletsoeng leqepheng la memori. Mokhoa ona o fokotsa ho arohana le ho eketsa sebaka sa data mohopolong. Leqephe la memori ke sehlopha sa diboloko tsa boholo bo lekanang. Ho li-system tsa 64-bit, boholo ba leqephe hangata ke 64 KB. Haeba ho se na li-blocks tse setseng leqepheng, e lokolloa ka ho feletseng 'me memori e khutlisetsoa tsamaisong ea ts'ebetso, e fokotsang litšenyehelo tsa mohopolo le ho arohana mananeong a nako e telele.

Laebrari e ka kenyeletsoa sethaleng sa ho hokahanya kapa ea laeloa bakeng sa lenaneo le seng le kopane ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram"). Laebrari e boetse e fana ka API bakeng sa ho kopanya ts'ebetso nakong ea nako ea ho sebetsa le taolo ea boits'oaro e nepahetseng, mohlala, bakeng sa ho hokahanya libapali tsa tokollo ea memori e liehang ho feta le li-reference counters tse ntseng li eketseha. Hoa khoneha ho theha le ho sebelisa "liqubu" tse 'maloa ts'ebelisong ea ho ajoa libakeng tse fapaneng tsa memori. Hape hoa khoneha ho lokolla qubu ka ho feletseng, ntle le ho feta le ho lokolla ka thoko lintho tse behiloeng ho eona.

Hoa khoneha ho haha ​​​​laebrari ka mokhoa o bolokehileng, moo maqephe a khethehileng a ho hlahloba memori (maqephe a balebeli) a nkeloa sebaka meeling ea li-block, 'me ho sebelisoa randomisation ea kabo ea li-block le encryption ea lethathamo la li-blocks tse lokolotsoeng. Mehato e joalo e etsa hore ho khonehe ho thibela mekhoa e tloaelehileng ea ho sebelisa li-buffer overflows. Ha o nolofaletsa Safe Mode, tshebetso e fokotseha ka hoo e ka bang 3%.

Har'a likarolo tsa mimalloc, ho boetse ho hlokomeloa hore ha e khone ho ba le mathata a ho phalla ka lebaka la ho arohana ho hoholo. Boemong bo bobe ka ho fetesisa, tšebeliso ea mohopolo e eketseha ka 0.2% bakeng sa metadata mme e ka fihla ho 16.7% bakeng sa mohopolo o phatlalalitsoeng. Ho qoba likhohlano ha o fumana lisebelisoa, mimalloc e sebelisa ts'ebetso ea athomo feela.

Source: opennet.ru

Eketsa ka tlhaloso