ፌስቡክ የF14 hash tables ትግበራን ከፈተ

የፌስቡክ ኩባንያ አስታውቋል ስለ ሃሽ ጠረጴዛዎች ክፍት ምንጭ አተገባበር F14፣ ለተቀላጠፈ የማህደረ ትውስታ ፍጆታ የተመቻቸ። F14 በፌስቡክ መሠረተ ልማት ውስጥ ለአብዛኛዎቹ የሃሽ ሠንጠረዦች ምትክ ሆኖ ያገለግላል እና አፈጻጸምን ሳይቀንስ የማስታወሻ ፍጆታን ይቀንሳል. F14 google:: sparse_hash_map hash ሰንጠረዦችን ይበልጣል፣ይህም እስካሁን ከማስታወሻ ፍጆታ አንፃር በጣም ቀልጣፋ ነው ተብሎ ይታሰባል። የፕሮጀክት ኮድ በ C ++ የተፃፈ እና በቤተ-መጽሐፍት ውስጥ ተካትቷል ሞላ.

F14 የሚያመለክተው ስልተ ቀመሮችን ከ14 ጋር በድርብ ሃሽ ላይ የተመሰረተ የግጭት አፈታት ስርዓት ነው። የናሙናዎች ቅደም ተከተል (የ 14 ማስገቢያዎች ሰንሰለት በአንድ የሃሽ ጠረጴዛ ሕዋስ ውስጥ ተከማችቷል እና በሴሎች መካከል ያለው የጊዜ ክፍተት በረዳት ሃሽ ተግባር ይሰላል)። የሕዋስ ማጣሪያ ሥራዎችን ለማፋጠን፣ አተገባበሩ የቬክተር መመሪያዎችን SSE2 ለ x86_64 ሲስተሞች እና NEON ለ Aarch64 ይጠቀማል፣ እነዚህም ክፍተቶችን በቁልፍ ሰንሰለቶች ለመምረጥ እና በሰንሰለቱ ውስጥ ያሉትን ቁልፎች በማጣራት ትይዩ ለማድረግ ያስችላል። የ 14 ቦታዎች ብሎኮች በአንድ ጊዜ ይከናወናሉ ፣ ይህ በአቀነባባሪው መሸጎጫ አጠቃቀም እና በግጭቶች ብዛት መካከል ያለው ጥሩ ሚዛን ነው።

የF14 ልዩ ባህሪ የተለያዩ የመረጃ ማከማቻ ስልቶችን የመምረጥ ችሎታ ነው።

  • F14NodeMap - ለትልቅ እና መካከለኛ መጠን ያላቸው ቁልፎች አነስተኛውን ማህደረ ትውስታ ይጠቀማል። በእያንዳንዱ ማስገቢያ ላይ ወደ malloc ጥሪ በማድረግ ንጥረ ነገሮች በተዘዋዋሪ መከማቸታቸውን ያረጋግጣል።
  • F14ValueMap - ለአነስተኛ ቁልፎች አነስተኛ የማስታወሻ ፍጆታ ያቀርባል. ንጥረ ነገሮች በሴሎች ውስጥ ተከማችተዋል (በመስመር ውስጥ)። ለመካከለኛ እና ትልቅ ቁልፎች, ይህ አቀራረብ ወደ የሚታይ ማህደረ ትውስታ በላይ ይመራል;
  • F14VectorMap - ለትልቅ ጠረጴዛዎች እና ውስብስብ ቁልፎች በፍጥነት ይሰራል, ግን ለቀላል ቁልፎች እና ትናንሽ ጠረጴዛዎች ቀርፋፋ. ንጥረ ነገሮቹ ያለማቋረጥ በተጨናነቀ ድርድር ውስጥ ተጭነዋል እና በ 32-ቢት መረጃ ጠቋሚ ይስተናገዳሉ።
  • F14FastMap ጥምር ስልት ነው። ቁልፉ ከ 24 ባይት በታች ከሆነ F14ValueMap ተመርጧል እና ተጨማሪ ከሆነ F14VectorMap ይመረጣል.

ፌስቡክ የF14 hash tables ትግበራን ከፈተ

ምንጭ: opennet.ru

አስተያየት ያክሉ