ஃபேஸ்புக் 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

கருத்தைச் சேர்