ማይክሮሶፍት ለሚማሎክ ማህደረ ትውስታ ድልድል ስርዓት ኮድ ከፍቷል።

ማይክሮሶፍት በ MIT ፍቃድ ላይብረሪ ከፍቷል። mmlloc በመጀመሪያ ለቋንቋዎች የሩጫ ጊዜ ክፍሎች ከተፈጠረ የማህደረ ትውስታ ድልድል ስርዓት አተገባበር ኮካ и እሺ. ሚማሎክ ኮዳቸውን ሳይቀይሩ በመደበኛ አፕሊኬሽኖች ውስጥ ጥቅም ላይ እንዲውል ተስተካክሏል እና ለ malloc ተግባር ግልፅ ምትክ ሆኖ ሊያገለግል ይችላል። ድጋፎች በዊንዶውስ ፣ ማክሮስ ፣ ሊኑክስ ፣ ቢኤስዲ እና ሌሎች ዩኒክስ መሰል ስርዓቶች ላይ ይሰራሉ።

የ mimalloc ቁልፍ ባህሪው የታመቀ አተገባበር (ከ 3500 ያነሰ የኮድ መስመሮች) እና በጣም ከፍተኛ አፈፃፀም ነው. ውስጥ የተደረጉ ሙከራዎች mimalloc ጨምሮ ሁሉንም ተወዳዳሪ የማህደረ ትውስታ ድልድል ቤተ-መጻሕፍት በልጧል ጀማልሎክ, tcmalloc, snmalloc, rpmalloc и ኮርድ.

አፈፃፀሙን ለመገምገም፣ የነባር ስብስብ መደበኛ ፈተናዎች በአንዳንድ ሙከራዎች ሚማሎክ ከሌሎች ስርዓቶች በብዙ እጥፍ ፈጣን ነው፡ ለምሳሌ በተለያዩ ክሮች መካከል የነገር ፍልሰት ሙከራ ላይ ሚማልሎክ ከ tcmalloc እና jemalloc ከ2.5 እጥፍ በላይ ፈጣኑ ሆኖ ተገኝቷል። በተመሳሳይ ጊዜ, በአብዛኛዎቹ ሙከራዎች, ዝቅተኛ የማስታወሻ ፍጆታ እንዲሁ ይስተዋላል, በአንዳንድ ሁኔታዎች የማስታወስ ፍጆታ በ 25% ይቀንሳል.

ማይክሮሶፍት ለሚማሎክ ማህደረ ትውስታ ድልድል ስርዓት ኮድ ከፍቷል።

ከፍተኛ አፈጻጸም የሚገኘው በዋናነት የነጻ ዝርዝር ማጋራትን በመጠቀም ነው። ከአንድ ትልቅ ዝርዝር ይልቅ, ሚማሎክ ተከታታይ ትናንሽ ዝርዝሮችን ይጠቀማል, እያንዳንዱም ከማስታወሻ ገጽ ጋር የተያያዘ ነው. ይህ አቀራረብ መበታተንን ይቀንሳል እና የውሂብ አከባቢን በማህደረ ትውስታ ውስጥ ይጨምራል. የማህደረ ትውስታ ገጽ ተመሳሳይ መጠን ያላቸው ብሎኮች በቡድን የተሰባሰቡ ናቸው። በ64-ቢት ሲስተም የገጹ መጠን በተለምዶ 64 ኪባ ነው። በገጹ ውስጥ ምንም የተያዙ ብሎኮች ከሌሉ ሙሉ በሙሉ ነፃ ወጥቷል እና ማህደረ ትውስታው ወደ ኦፕሬቲንግ ሲስተም ይመለሳል ፣ ይህም የማስታወሻ ወጪዎችን እና ረጅም ጊዜ በሚሰሩ ፕሮግራሞች ውስጥ መቆራረጥን ይቀንሳል ።

ቤተ መፃህፍቱ በማገናኘት ደረጃ ላይ ሊካተት ወይም አስቀድሞ ለተሰበሰበ ፕሮግራም ("LD_PRELOAD=/usr/bin/libmimalloc.so myprogram") መጫን ይችላል። ቤተ መፃህፍቱም ያቀርባል ኤ ፒ አይ ተግባርን ወደ ሩጫ ጊዜ እና ጥሩ ጥራት ባለው የባህሪ ቁጥጥር ውስጥ ለማዋሃድ ፣ ለምሳሌ ፣ ሰነፍ የማስታወሻ መልቀቂያ ተቆጣጣሪዎችን ለማገናኘት እና በብቸኝነት የሚጨምሩ የማጣቀሻ ቆጣሪዎችን። በተለያዩ የማስታወሻ ቦታዎች ላይ ለማከፋፈል በማመልከቻ ውስጥ ብዙ "ክምር" መፍጠር እና መጠቀም ይቻላል. በተጨማሪም በውስጡ የተቀመጡትን እቃዎች ሳያልፉ እና ሳይለቁ, ክምርን ሙሉ በሙሉ ነጻ ማድረግ ይቻላል.

ቤተ መፃህፍቱን በአስተማማኝ ሁኔታ መገንባት ይቻላል ፣ በየትኛው ልዩ የማስታወሻ ቼክ ገፆች (ጠባቂ-ገጾች) በብሎክ ድንበሮች ላይ ተተክተዋል ፣ እና የማገጃ ስርጭት እና የተለቀቁ ብሎኮች ዝርዝር ምስጠራ ጥቅም ላይ ይውላል። እንደነዚህ ያሉ እርምጃዎች ክምር ላይ የተመረኮዙ የተትረፈረፈ ፍሳሾችን ለመጠቀም በጣም የተለመዱ ቴክኒኮችን ለመዝጋት ያስችላሉ። ደህንነቱ የተጠበቀ ሁነታን ሲያነቁ አፈፃፀሙ በ 3% ገደማ ይቀንሳል.

ከሚማሎክ ባህሪያት መካከል, በትልቅ ቁርጥራጭ ምክንያት የሆድ እብጠት ለችግሮች የማይጋለጥ መሆኑንም ይጠቀሳሉ. በጣም በከፋ ሁኔታ፣ የማህደረ ትውስታ ፍጆታ ለሜታዳታ በ0.2% ይጨምራል እና ለተከፋፈለ ማህደረ ትውስታ 16.7% ሊደርስ ይችላል። ሀብቶችን በሚደርሱበት ጊዜ ግጭቶችን ለማስወገድ, mimalloc የአቶሚክ ስራዎችን ብቻ ይጠቀማል.

ምንጭ: opennet.ru

አስተያየት ያክሉ