فيسبوڪ F14 هيش ٽيبل تي عمل درآمد شروع ڪري ٿو

Facebook ڪمپني اعلان ڪيو هيش ٽيبل جي اوپن سورس تي عمل درآمد بابت F14، موثر ياداشت جي استعمال لاءِ بهتر. F14 Facebook infrastructure ۾ استعمال ڪيو ويندو آهي اڪثر قسم جي هيش ٽيبل جي متبادل طور ۽ ڪارڪردگي کي قربان ڪرڻ کان سواءِ ياداشت جي استعمال کي گھٽائي سگھي ٿو. F14 خاص طور تي google::sparse_hash_map hash tables کان وڌيڪ ڪم ڪري ٿو، جيڪي اڃا تائين يادگيري جي استعمال جي لحاظ کان سڀ کان وڌيڪ ڪارائتو سمجهيا ويا آهن. پروجيڪٽ ڪوڊ C++ ۾ لکيل آهي ۽ لائبريري ۾ شامل آهي ڦٽل.

F14 14 سان ڊبل هيشنگ جي بنياد تي ڪوليشن ريزوليوشن سسٽم سان الگورتھم ڏانهن اشارو ڪري ٿو نموني جو سلسلو (14 سلاٽ جو هڪ زنجير هڪ هيش ٽيبل سيل ۾ ذخيرو ٿيل آهي، ۽ سيلز جي وچ ۾ وقفو هڪ معاون هيش فنڪشن استعمال ڪندي حساب ڪيو ويندو آهي). سيل فلٽرنگ جي عملن کي تيز ڪرڻ لاءِ، عمل درآمد x2_86 سسٽم لاءِ ویکٹر هدايتون SSE64 ۽ NEON Aarch64 لاءِ استعمال ڪري ٿو، جيڪي ڪن زنجيرن سان سلاٽ چونڊڻ ۽ زنجير جي اندر چاٻيون ڪڍڻ لاءِ عملن جي عمل کي متوازي ڪرڻ جي اجازت ڏين ٿيون. 14 سلاٽ جا بلاڪ هڪ وقت ۾ پروسيس ڪيا ويندا آهن، جيڪو پروسيسر ڪيش استعمال ڪرڻ جي ڪارڪردگي ۽ ٽڪرن جي تعداد جي وچ ۾ بهترين توازن آهي.

F14 جي هڪ خاص خصوصيت مختلف ڊيٽا اسٽوريج حڪمت عملين کي چونڊڻ جي صلاحيت آهي:

  • F14NodeMap - گھٽ ۾ گھٽ ميموري استعمال ڪري ٿو وڏي ۽ وچولي سائيز جي چابين لاءِ. انهي کي يقيني بڻائي ٿو ته عناصر اڻ سڌي طرح هر داخل ٿيڻ تي malloc کي ڪال سان محفوظ ڪيا ويا آهن؛
  • F14ValueMap - ننڍڙن ڪنجين لاءِ گھٽ ۾ گھٽ ميموري واپرائڻ مهيا ڪري ٿي. عناصر پاڻ ۾ سيلز ۾ محفوظ ٿيل آهن (ان لائن). وچولي ۽ وڏي چاٻين لاء، هي طريقو قابل ذڪر ياداشت جي مٿان مٿي ڪري ٿو؛
  • F14VectorMap - وڏين ٽيبلن ۽ پيچيده ڪنجين لاءِ تيز ڪم ڪري ٿو، پر سادو چاٻين ۽ ننڍين ٽيبلن لاءِ سست. عناصر هڪ مسلسل آبادي واري صف ۾ ڀريل آهن ۽ 32-bit انڊيڪس پوائنٽر طرفان خطاب ڪيو ويو آهي.
  • F14FastMap هڪ گڏيل حڪمت عملي آهي. جيڪڏهن ڪيچي 24 بائيٽ کان گهٽ آهي، ته پوءِ F14ValueMap چونڊيو ويندو، ۽ جيڪڏهن وڌيڪ، F14VectorMap چونڊيو ويندو.

فيسبوڪ F14 هيش ٽيبل تي عمل درآمد شروع ڪري ٿو

جو ذريعو: opennet.ru

تبصرو شامل ڪريو