เชฎเชพเช‡เช•เซเชฐเซ‹เชธเซ‹เชซเซเชŸเซ‡ mimalloc เชฎเซ‡เชฎเชฐเซ€ เชซเชพเชณเชตเชฃเซ€ เชธเชฟเชธเซเชŸเชฎ เชฎเชพเชŸเซ‡ เช•เซ‹เชก เช–เซ‹เชฒเซเชฏเซ‹ เช›เซ‡

เชฎเชพเช‡เช•เซเชฐเซ‹เชธเซ‹เชซเซเชŸเซ‡ MIT เชฒเชพเชฏเชธเชจเซเชธ เชนเซ‡เช เชณ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เช–เซ‹เชฒเซ€ เช›เซ‡ mmalloc เชญเชพเชทเชพเช“เชจเชพ เชฐเชจเชŸเชพเช‡เชฎ เช˜เชŸเช•เซ‹ เชฎเชพเชŸเซ‡ เชฎเซ‚เชณเชฐเซ‚เชชเซ‡ เชฌเชจเชพเชตเซ‡เชฒ เชฎเซ‡เชฎเชฐเซ€ เชซเชพเชณเชตเชฃเซ€ เชธเชฟเชธเซเชŸเชฎเชจเชพ เช…เชฎเชฒเซ€เช•เชฐเชฃเชฎเชพเช‚เชฅเซ€ เช•เซ‹เช•เชพ ะธ เชฆเซเชฐเซเชฌเชณ. Mimalloc เชคเซ‡เชฎเชจเชพ เช•เซ‹เชก เชฌเชฆเชฒเซเชฏเชพ เชตเชฟเชจเชพ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เชธเซเชตเซ€เช•เชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ malloc เช•เชพเชฐเซเชฏ เชฎเชพเชŸเซ‡ เชชเชพเชฐเชฆเชฐเซเชถเช• เชฐเชฟเชชเซเชฒเซ‡เชธเชฎเซ‡เชจเซเชŸ เชคเชฐเซ€เช•เซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡. Windows, macOS, Linux, BSD เช…เชจเซ‡ เช…เชจเซเชฏ เชฏเซเชจเชฟเช•เซเชธ เชœเซ‡เชตเซ€ เชธเชฟเชธเซเชŸเชฎเซเชธ เชชเชฐ เช•เชพเชฎเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡.

เชฎเซ€เชฎเชฒเซ‹เช•เชจเซ€ เชฎเซเช–เซเชฏ เชตเชฟเชถเซ‡เชทเชคเชพ เช เชคเซ‡เชจเซเช‚ เช•เซ‹เชฎเซเชชเซ‡เช•เซเชŸ เช…เชฎเชฒเซ€เช•เชฐเชฃ (เช•เซ‹เชกเชจเซ€ 3500 เชฅเซ€ เช“เช›เซ€ เชฒเชพเช‡เชจ) เช…เชจเซ‡ เช–เซ‚เชฌ เชœ เช‰เชšเซเชš เชชเซเชฐเชฆเชฐเซเชถเชจ เช›เซ‡. IN เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช•เชฐเซเชฏเชพ mimalloc เชธเชนเชฟเชค เชคเชฎเชพเชฎ เชธเซเชชเชฐเซเชงเชพเชคเซเชฎเช• เชฎเซ‡เชฎเชฐเซ€ เชซเชพเชณเชตเชฃเซ€ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เช“เชจเซ‡ เชชเชพเช›เชณ เชฐเชพเช–เซ€ เชฆเซ€เชงเซ€ jemalloc, tcmalloc, snmalloc, rpmalloc ะธ เชนเซ‹เชฐเซเชก.

เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซเช‚ เชฎเซ‚เชฒเซเชฏเชพเช‚เช•เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชธเซเชคเชฟเชคเซเชตเชฎเชพเช‚เชจเซ‹ เชธเชฎเซ‚เชน เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เชชเชฐเซ€เช•เซเชทเชฃเซ‹ เช•เซ‡เชŸเชฒเชพเช• เชชเชฐเซ€เช•เซเชทเชฃเซ‹เชฎเชพเช‚, mimalloc เช…เชจเซเชฏ เชธเชฟเชธเซเชŸเชฎเซ‹ เช•เชฐเชคเชพเช‚ เช˜เชฃเซ€ เชตเช–เชค เชเชกเชชเซ€ เช›เซ‡; เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชตเชฟเชตเชฟเชง เชฅเซเชฐเซ‡เชกเซ‹ เชตเชšเซเชšเซ‡ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฃเชจเชพ เชชเชฐเซ€เช•เซเชทเชฃเชฎเชพเช‚, mimalloc tcmalloc เช…เชจเซ‡ jemalloc เช•เชฐเชคเชพเช‚ 2.5 เช—เชฃเชพ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชเชกเชชเซ€ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชคเซ‡ เชœ เชธเชฎเชฏเซ‡, เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เชชเชฐเซ€เช•เซเชทเชฃเซ‹เชฎเชพเช‚, เช“เช›เซ€ เชฎเซ‡เชฎเชฐเซ€ เชตเชชเชฐเชพเชถ เชชเชฃ เชœเซ‹เชตเชพ เชฎเชณเซ‡ เช›เซ‡; เช•เซ‡เชŸเชฒเซ€เช• เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“เชฎเชพเช‚, เชฎเซ‡เชฎเชฐเซ€ เชตเชชเชฐเชพเชถ 25% เช˜เชŸเชพเชกเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชฎเชพเช‡เช•เซเชฐเซ‹เชธเซ‹เชซเซเชŸเซ‡ mimalloc เชฎเซ‡เชฎเชฐเซ€ เชซเชพเชณเชตเชฃเซ€ เชธเชฟเชธเซเชŸเชฎ เชฎเชพเชŸเซ‡ เช•เซ‹เชก เช–เซ‹เชฒเซเชฏเซ‹ เช›เซ‡

เช‰เชšเซเชš เชชเซเชฐเชฆเชฐเซเชถเชจ เชฎเซเช–เซเชฏเชคเซเชตเซ‡ เชฎเชซเชค เชธเซ‚เชšเชฟ เชถเซ‡เชฐเชฟเช‚เช—เชจเชพ เช‰เชชเชฏเซ‹เช— เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡. เชเช• เชฎเซ‹เชŸเซ€ เชธเซ‚เชšเชฟเชจเซ‡ เชฌเชฆเชฒเซ‡, mimallock เชจเชพเชจเซ€ เชฏเชพเชฆเซ€เช“เชจเซ€ เชถเซเชฐเซ‡เชฃเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชฆเชฐเซ‡เช• เชฎเซ‡เชฎเชฐเซ€ เชชเซƒเชทเซเช  เชธเชพเชฅเซ‡ เชฌเช‚เชงเชพเชฏเซ‡เชฒ เช›เซ‡. เช† เช…เชญเชฟเช—เชฎ เชซเซเชฐเซ‡เช—เชฎเซ‡เชจเซเชŸเซ‡เชถเชจ เช˜เชŸเชพเชกเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เชกเซ‡เชŸเชพ เชฒเซ‹เช•เซ‡เชฒเชฟเชŸเซ€ เชตเชงเชพเชฐเซ‡ เช›เซ‡. เชฎเซ‡เชฎเชฐเซ€ เชชเซ‡เชœ เช เชธเชฎเชพเชจ เช•เชฆเชจเชพ เชฌเซเชฒเซ‹เช•เซเชธเชจเซ‹ เชœเซ‚เชฅเชฌเชฆเซเชง เชธเชฎเซ‚เชน เช›เซ‡. 64-เชฌเซ€เชŸ เชธเชฟเชธเซเชŸเชฎเซ‹ เชชเชฐ, เชชเซƒเชทเซเช เชจเซเช‚ เช•เชฆ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ 64 KB เช›เซ‡. เชœเซ‹ เชชเซƒเชทเซเช เชฎเชพเช‚ เช•เซ‹เชˆ เช•เชฌเชœเซ‡ เช•เชฐเซ‡เชฒเชพ เชฌเซเชฒเซ‹เช•เซเชธ เชฌเชพเช•เซ€ เชจ เชนเซ‹เชฏ, เชคเซ‹ เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฎเซเช•เซเชค เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชฎเซ‡เชฎเชฐเซ€ เช‘เชชเชฐเซ‡เชŸเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชชเชพเช›เซ€ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เชšเชพเชฒเชคเชพ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเซเชธเชฎเชพเช‚ เชฎเซ‡เชฎเชฐเซ€ เช–เชฐเซเชš เช…เชจเซ‡ เชซเซเชฐเซ‡เช—เชฎเซ‡เชจเซเชŸเซ‡เชถเชจ เช˜เชŸเชพเชกเซ‡ เช›เซ‡.

เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‡ เชฒเชฟเช‚เช•เชฟเช‚เช— เชธเซเชŸเซ‡เชœ เชชเชฐ เชธเชฎเชพเชตเซ€ เชถเช•เชพเชฏ เช›เซ‡ เช…เชฅเชตเชพ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเซ‡เชฒเชพ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชฎเชพเชŸเซ‡ เชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡ (โ€œLD_PRELOAD=/usr/bin/libmimalloc.so myprogramโ€). เชชเซเชธเซเชคเช•เชพเชฒเชฏ เชชเชฃ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡ API เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพเชจเซ‡ เชฐเชจเชŸเชพเชˆเชฎ เช…เชจเซ‡ เชซเชพเชˆเชจ-เช—เซเชฐเซ‡เช‡เชจเซเชก เชฌเชฟเชนเซ‡เชตเชฟเชฏเชฐ เช•เช‚เชŸเซเชฐเซ‹เชฒเชฎเชพเช‚ เชเช•เซ€เช•เซƒเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชฒเซ‡เชเซ€ เชฎเซ‡เชฎเชฐเซ€ เชฐเซ€เชฒเซ€เช เชนเซ‡เชจเซเชกเชฒเชฐเซเชธเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพ เช…เชจเซ‡ เชธเช‚เชฆเชฐเซเชญ เช•เชพเช‰เชจเซเชŸเชฐเซเชธเชจเซ‡ เชเช•เชตเชฟเชง เชฐเซ€เชคเซ‡ เชตเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡. เชตเชฟเชตเชฟเชง เชฎเซ‡เชฎเชฐเซ€ เชตเชฟเชธเซเชคเชพเชฐเซ‹เชฎเชพเช‚ เชตเชฟเชคเชฐเชฃ เชฎเชพเชŸเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚ เช˜เชฃเชพ "เชขเช—เชฒเชพ" เชฌเชจเชพเชตเชตเชพ เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชถเช•เซเชฏ เช›เซ‡. เชขเช—เชฒเชพเชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชฏเชพ เชตเชฟเชจเชพ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชฎเซ‚เช•เซ‡เชฒเซ€ เชตเชธเซเชคเซเช“เชจเซ‡ เช…เชฒเช—เชฅเซ€ เชฎเซเช•เซเชค เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ, เชขเช—เชฒเชพเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฎเซเช•เซเชค เช•เชฐเชตเชพเชจเซเช‚ เชชเชฃ เชถเช•เซเชฏ เช›เซ‡.

เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‡ เชธเซเชฐเช•เซเชทเชฟเชค เชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚ เชฌเชจเชพเชตเชตเซ€ เชถเช•เซเชฏ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เช–เชพเชธ เชฎเซ‡เชฎเชฐเซ€ เชšเซ‡เช• เชชเซ‡เชœเซ€เชธ (เช—เชพเชฐเซเชก-เชชเซ‡เชœ) เชฌเซเชฒเซ‹เช• เชฌเชพเช‰เชจเซเชกเซเชฐเซ€ เชชเชฐ เช…เชตเซ‡เชœเซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เช…เชจเซ‡ เชฌเซเชฒเซ‹เช• เชตเชฟเชคเชฐเชฃเชจเซเช‚ เชฐเซ‡เชจเซเชกเชฎเชพเช‡เชเซ‡เชถเชจ เช…เชจเซ‡ เชฎเซเช•เซเชค เชฌเซเชฒเซ‹เช•เซเชธเชจเซ€ เชฏเชพเชฆเซ€เช“เชจเชพ เชเชจเซเช•เซเชฐเชฟเชชเซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช†เชตเชพ เชชเช—เชฒเชพเช‚ เชคเชฎเชจเซ‡ เชขเช—เชฒเชพ-เช†เชงเชพเชฐเชฟเชค เชฌเชซเชฐ เช“เชตเชฐเชซเซเชฒเซ‹เชจเซเช‚ เชถเซ‹เชทเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซŒเชฅเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชคเช•เชจเซ€เช•เซ‹เชจเซ‡ เช…เชตเชฐเซ‹เชงเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชธเซ‡เชซ เชฎเซ‹เชกเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฒเช—เชญเช— 3% เช˜เชŸเซ‡ เช›เซ‡.

เชฎเซ€เชฎเชฒเซ‹เช•เชจเซ€ เชตเชฟเชถเซ‡เชทเชคเชพเช“เชฎเชพเช‚, เชคเซ‡ เชชเชฃ เชจเซ‹เช‚เชงเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ เชคเซ‡ เชฎเซ‹เชŸเชพ เชŸเซเช•เชกเชพเชจเซ‡ เช•เชพเชฐเชฃเซ‡ เชชเซ‡เชŸเชจเซเช‚ เชซเซ‚เชฒเชตเซเช‚ เชธเชพเชฅเซ‡ เชธเชฎเชธเซเชฏเชพเช“ เชฎเชพเชŸเซ‡ เชธเช‚เชตเซ‡เชฆเชจเชถเซ€เชฒ เชจเชฅเซ€. เชธเซŒเชฅเซ€ เช–เชฐเชพเชฌ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชฎเชพเช‚, เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพ เชฎเชพเชŸเซ‡ เชฎเซ‡เชฎเชฐเซ€ เชตเชชเชฐเชพเชถ 0.2% เชตเชงเซ‡ เช›เซ‡ เช…เชจเซ‡ เชตเชฟเชคเชฐเชฟเชค เชฎเซ‡เชฎเชฐเซ€ เชฎเชพเชŸเซ‡ 16.7% เชธเซเชงเซ€ เชชเชนเซ‹เช‚เชšเซ€ เชถเช•เซ‡ เช›เซ‡. เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชคเช•เชฐเชพเชฐ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡, mimallock เชฎเชพเชคเซเชฐ เช…เชฃเซ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: opennet.ru

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹