මයික්‍රොසොෆ්ට් mimalloc මතක වෙන් කිරීමේ පද්ධතිය සඳහා කේතය විවෘත කර ඇත

Microsoft විසින් MIT බලපත්‍රය යටතේ පුස්තකාලයක් විවෘත කර ඇත mmalloc භාෂාවල ධාවන කාල සංරචක සඳහා මුලින් නිර්මාණය කරන ලද මතක වෙන් කිරීමේ පද්ධතියක් ක්‍රියාත්මක කිරීමෙන් කොකා и ලීන්. Mimalloc ඔවුන්ගේ කේතය වෙනස් නොකර සම්මත යෙදුම්වල භාවිතය සඳහා අනුවර්තනය කර ඇති අතර malloc ශ්‍රිතය සඳහා විනිවිද පෙනෙන ආදේශකයක් ලෙස ක්‍රියා කළ හැකිය. Windows, macOS, Linux, BSD සහ අනෙකුත් Unix වැනි පද්ධති මත වැඩ කිරීමට සහය දක්වයි.

Mimalloc හි ප්රධාන ලක්ෂණය වන්නේ එහි සංයුක්ත ක්රියාත්මක කිරීම (කේත පේළි 3500 ට වඩා අඩු) සහ ඉතා ඉහළ කාර්යසාධනයයි. තුල පරීක්ෂණ සිදු කරන ලදී mimalloc ඇතුළුව තරඟකාරී මතක වෙන් කිරීමේ පුස්තකාල සියල්ල අභිබවා ගියේය ජෙමල්ලොක්, tcmalloc, snmalloc, rpmalloc и හෝඩ්.

කාර්ය සාධනය ඇගයීම සඳහා, පවතින කට්ටලයක් සම්මත පරීක්ෂණ සමහර පරීක්ෂණ වලදී, mimalloc අනෙකුත් පද්ධති වලට වඩා බොහෝ ගුණයකින් වේගවත් වේ; උදාහරණයක් ලෙස, විවිධ නූල් අතර වස්තු සංක්‍රමණය පරීක්ෂා කිරීමේදී, mimalloc tcmalloc සහ jemalloc වලට වඩා 2.5 ගුණයකට වඩා වේගවත් විය. ඒ අතරම, බොහෝ පරීක්ෂණ වලදී, අඩු මතක පරිභෝජනය ද නිරීක්ෂණය කරනු ලැබේ; සමහර අවස්ථාවන්හිදී, මතක පරිභෝජනය 25% කින් අඩු කළ හැකිය.

මයික්‍රොසොෆ්ට් mimalloc මතක වෙන් කිරීමේ පද්ධතිය සඳහා කේතය විවෘත කර ඇත

ඉහළ කාර්ය සාධනයක් ලබා ගත හැක්කේ ප්‍රධාන වශයෙන් නොමිලේ ලැයිස්තු බෙදා හැරීම භාවිතා කිරීමෙනි. එක් විශාල ලැයිස්තුවක් වෙනුවට, mimalloc කුඩා ලැයිස්තු මාලාවක් භාවිතා කරයි, ඒ සෑම එකක්ම මතක පිටුවකට බැඳී ඇත. මෙම ප්‍රවේශය ඛණ්ඩනය අඩු කරන අතර මතකයේ දත්ත ප්‍රදේශය වැඩි කරයි. මතක පිටුවක් යනු සමාන ප්‍රමාණයේ කොටස් සමූහයකි. 64-bit පද්ධතිවල, පිටු ප්‍රමාණය සාමාන්‍යයෙන් 64 KB වේ. පිටුවේ වාඩිලාගෙන සිටින කුට්ටි කිසිවක් ඉතිරිව නොමැති නම්, එය සම්පූර්ණයෙන්ම නිදහස් කර මතකය මෙහෙයුම් පද්ධතියට ආපසු ලබා දෙනු ඇත, එය දිගුකාලීන වැඩසටහන් වල මතක පිරිවැය සහ ඛණ්ඩනය අඩු කරයි.

පුස්තකාලය සම්බන්ධ කිරීමේ අදියරේදී හෝ දැනටමත් එකලස් කර ඇති වැඩසටහනක් සඳහා පූරණය කළ හැක (“LD_PRELOAD=/usr/bin/libmimalloc.so myprogram”). පුස්තකාලය ද සපයයි API ක්‍රියාකාරීත්වය ධාවන කාලයට සහ සියුම් හැසිරීම් පාලනයට ඒකාබද්ධ කිරීම සඳහා, උදාහරණයක් ලෙස, කම්මැලි මතක මුදා හැරීම් හසුරුවන්නන් සම්බන්ධ කිරීම සහ ඒකාකාරී ලෙස වැඩි කරන යොමු කවුන්ටර සඳහා. විවිධ මතක ප්‍රදේශ හරහා බෙදා හැරීම සඳහා යෙදුමක “ගොඩවල්” කිහිපයක් නිර්මාණය කර භාවිතා කළ හැකිය. ඒ හරහා ගොස් එහි තැන්පත් කර ඇති වස්තූන් වෙන වෙනම නිදහස් නොකර ගොඩ සම්පූර්ණයෙන්ම නිදහස් කිරීමට ද හැකිය.

බ්ලොක් මායිම්වල විශේෂ මතක පිරික්සුම් පිටු (ආරක්ෂක පිටු) ආදේශ කර ඇති අතර, බ්ලොක් බෙදා හැරීම සසම්භාවී කිරීම සහ නිදහස් කරන ලද බ්ලොක් ලැයිස්තු සංකේතනය කිරීම භාවිතා කරන ආරක්ෂිත මාදිලියකින් පුස්තකාලය ගොඩනගා ගත හැකිය. එවැනි පියවරයන් ගොඩ මත පදනම් වූ බෆර පිටාර ගැලීම් සූරාකෑම සඳහා බොහෝ සාමාන්‍ය ශිල්පීය ක්‍රම අවහිර කිරීමට ඔබට ඉඩ සලසයි. ඔබ ආරක්ෂිත ප්‍රකාරය සක්‍රීය කළ විට, කාර්ය සාධනය ආසන්න වශයෙන් 3% කින් අඩු වේ.

Mimalloc හි ලක්ෂණ අතර, එය විශාල ඛණ්ඩනය හේතුවෙන් ඉදිමීම සමඟ ගැටළු වලට ගොදුරු නොවන බව ද සටහන් වේ. නරකම අවස්ථාවෙහිදී, පාර-දත්ත සඳහා මතක පරිභෝජනය 0.2% කින් වැඩි වන අතර බෙදා හරින ලද මතකය සඳහා 16.7% දක්වා ළඟා විය හැකිය. සම්පත් වෙත පිවිසීමේදී ගැටුම් වළක්වා ගැනීම සඳහා, mimalloc භාවිතා කරන්නේ පරමාණුක මෙහෙයුම් පමණි.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න