فیسبوک د F14 هش میزونو پلي کول پرانیزي

د فیسبوک شرکت اعلان وکړ د هش میزونو د خلاصې سرچینې پلي کولو په اړه F14، د موثرې حافظې مصرف لپاره مطلوب. F14 د فیسبوک زیربنا کې د ډیری ډوله هش میزونو لپاره د بدیل په توګه کارول کیږي او کولی شي د فعالیت قرباني کولو پرته د حافظې مصرف کم کړي. F14 د پام وړ د google::sparse_hash_map هش جدولونو څخه ښه فعالیت کوي، کوم چې تر اوسه د حافظې مصرف په برخه کې خورا اغیزمن ګڼل شوي. د پروژې کوډ په C++ کې لیکل شوی او په کتابتون کې شامل دی بده.

F14 د 14 سره د ډبل هش کولو پراساس د ټکر حل سیسټم سره الګوریتم ته اشاره کوي د نمونو لړۍ (د 14 سلاټونو سلسله په یوه هش میز حجره کې زیرمه شوې ، او د حجرو ترمینځ وقفه د معاون هش فنکشن په کارولو سره محاسبه کیږي). د حجرو د فلټر کولو عملیاتو ګړندی کولو لپاره ، پلي کول د x2_86 سیسټمونو لپاره د ویکتور لارښوونې SSE64 او د Aarch64 لپاره NEON کاروي ، کوم چې د کلیدي زنځیرونو سره د سلاټونو غوره کولو او په زنځیر کې کیلي پاکولو لپاره د عملیاتو اجرا کولو ته اجازه ورکوي. د 14 سلاټونو بلاکونه په یو وخت کې پروسس کیږي، کوم چې د پروسیسر کیچ کارولو موثریت او د ټکرونو شمیر ترمنځ غوره توازن دی.

د F14 یوه ځانګړې ځانګړتیا د مختلفو معلوماتو ذخیره کولو ستراتیژیو غوره کولو وړتیا ده:

  • F14NodeMap - د لوی او منځني اندازې کیلي لپاره لږترلږه حافظه مصرفوي. ډاډ ترلاسه کوي چې عناصر په غیر مستقیم ډول په هر داخل کې malloc ته د زنګ وهلو سره زیرمه شوي؛
  • F14ValueMap - د کوچني کیلي لپاره د حافظې لږترلږه مصرف چمتو کوي. عناصر پخپله په حجرو کې ساتل کیږي (انلاین). د منځنیو او لویو کیليونو لپاره، دا طریقه د پام وړ حافظې سر ته رسوي؛
  • F14VectorMap - د لوی میزونو او پیچلو کیلو لپاره ګړندی کار کوي ، مګر د ساده کیلي او کوچني میزونو لپاره ورو. عناصر په دوامداره توګه ډک شوي صف کې بسته شوي او د 32-bit شاخص پوائنټر لخوا په نښه شوي؛
  • F14FastMap یوه ګډه ستراتیژي ده. که کیلي د 24 بایټ څخه کم وي، نو F14ValueMap غوره شوی، او که ډیر، F14VectorMap غوره شوی.

فیسبوک د F14 هش میزونو پلي کول پرانیزي

سرچینه: opennet.ru

Add a comment