ෆේස්බුක් F14 හැෂ් වගු විවෘතව ක්‍රියාත්මක කිරීම

සමාගම ෆේස්බුක් නිවේදනය කරන ලදි විවෘත මූලාශ්‍ර හැෂ් වගු ක්‍රියාත්මක කිරීම් මත F14කාර්යක්ෂම මතක පරිභෝජනය සඳහා ප්‍රශස්ත කර ඇත. F14 Facebook යටිතල ව්‍යුහය තුළ බොහෝ ආකාරයේ හැෂ් වගු සඳහා ආදේශකයක් ලෙස භාවිතා කරන අතර කාර්ය සාධනය කැප නොකර මතක පරිභෝජනය අඩු කිරීමට ඔබට ඉඩ සලසයි. F14 සැලකිය යුතු ලෙස google::sparse_hash_map හෑෂ් වගු අභිබවා යයි, එය මෙතෙක් වඩාත්ම මතක කාර්යක්ෂමතාව ලෙස සැලකේ. ව්‍යාපෘති කේතය C++ වලින් ලියා පුස්තකාලයට ඇතුළත් කර ඇත මෝඩකම.

F14 යනු 14 සමඟ ද්විත්ව හැෂිං මත පදනම් වූ ඝට්ටන විභේදන පද්ධතියක් සහිත ඇල්ගොරිතමයන් ය. නියැදි අනුපිළිවෙල (හැෂ් වගුවේ එක් සෛලයක් තව් 14 ක දාමයක් ගබඩා කරයි, සහ සෛල අතර පරතරය ගණනය කරනු ලබන්නේ සහායක හැෂ් ශ්‍රිතයක් භාවිතා කරමිනි). සෛල පෙරීමේ මෙහෙයුම් වේගවත් කිරීම සඳහා, ක්‍රියාත්මක කිරීම මඟින් x2_86 පද්ධති සඳහා SSE64 දෛශික උපදෙස් සහ Aarch64 පද්ධති සඳහා NEON භාවිතා කරයි, එමඟින් දාමය තුළ යතුරු දාම සහ තිර යතුරු සහිත තව් තේරීමේ මෙහෙයුම් සමාන්තර කිරීමට ඔබට ඉඩ සලසයි. ප්‍රොසෙසර හැඹිලි භාවිතා කිරීමේ කාර්යක්ෂමතාව සහ ගැටීම් ගණන අතර ප්‍රශස්ත සමතුලිතතාවය වන ස්ලට් 14 ක බ්ලොක් වරකට සකසනු ලැබේ.

F14 හි ලක්ෂණයක් වන්නේ විවිධ දත්ත ගබඩා කිරීමේ උපාය මාර්ග තෝරා ගැනීමේ හැකියාවයි:

  • F14NodeMap - විශාල සහ මධ්‍යම ප්‍රමාණයේ යතුරු සඳහා අවම මතක ප්‍රමාණය පරිභෝජනය කරයි. malloc ශ්‍රිතය ඇතුළු කරන සෑම අවස්ථාවකම ඇමතුමක් සමඟ මූලද්‍රව්‍ය වක්‍ර ගබඩා කිරීම සපයයි;
  • F14ValueMap - කුඩා යතුරු සඳහා අවම මතක පරිභෝජනය සපයයි. මූලද්‍රව්‍ය සෛල තුළම ගබඩා කර ඇත (පේළිගතව). මධ්‍යම සහ විශාල යතුරු සඳහා, මෙම ප්‍රවේශය සැලකිය යුතු මතකයක් ඉහළට යොමු කරයි;
  • F14VectorMap විශාල වගු සහ සංකීර්ණ යතුරු සඳහා වේගවත් වේ, නමුත් සරල යතුරු සහ කුඩා වගු සඳහා මන්දගාමී වේ. මූලද්‍රව්‍ය එක ළඟ අරාවකට අසුරා ඇති අතර 32-බිට් දර්ශක දර්ශකයක් මඟින් ආමන්ත්‍රණය කරනු ලැබේ;
  • F14FastMap යනු ඒකාබද්ධ උපාය මාර්ගයකි. යතුර බයිට් 24 ට වඩා අඩු නම්, F14ValueMap තෝරා ගනු ලැබේ, වැඩි නම්, F14VectorMap තෝරා ගනු ලැබේ.

ෆේස්බුක් F14 හැෂ් වගු විවෘතව ක්‍රියාත්මක කිරීම

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

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