Facebook pêkanîna tabloyên hash F14 vedike

Şirketa Facebookê ragihand derbarê pêkanîna çavkaniya vekirî ya tabloyên hash F14, ji bo mezaxtina bîranînê ya bikêr xweşkirî ye. F14 di binesaziya Facebook-ê de wekî şûna pir celeb tabloyên hash tê bikar anîn û bêyî ku performansê bike qurbana bîranînê kêm dike. F14 bi baldarî ji tabloyên hash google::sparse_hash_map, yên ku heya nuha di warê vexwarina bîranînê de herî bikêrhatî têne hesibandin, bi pêş dikeve. Koda projeyê bi C++ hatiye nivîsandin û di pirtûkxaneyê de cih digire Folly.

F14 algorîtmayên xwedan pergalek çareserkirinê ya lihevhatinê ku li ser bingeha hejandina ducarî bi 14-ê ve girêdayî ye vedibêje. rêzikên nimûneyan (zincîrek ji 14 hêlînê di yek hucreyek tabloya hash de tê hilanîn, û navbera di navbera hucreyan de bi karanîna fonksiyonek haş a alîkar tê hesibandin). Ji bo bilezkirina operasyonên fîlterkirina hucreyê, pêkanîn rêwerzên vektorê SSE2 ji bo pergalên x86_64 û NEON ji bo Aarch64 bikar tîne, ku destûrê dide paralelkirina pêkanîna operasyonan ji bo hilbijartina hêlînên bi zincîreyan û siftkirina bişkokên di nav zincîrê de. Blokên 14 slotan di yek carê de têne hilberandin, ku ev hevsengiya çêtirîn di navbera karîgeriya karanîna cache ya pêvajoyê û hejmara pevçûnan de ye.

Taybetmendiyek taybetî ya F14 ev e ku meriv stratejiyên cûda hilanîna daneyan hilbijêrin:

  • F14NodeMap - ji bo bişkokên mezin û navîn bîranîna herî kêm dixwe. Piştrast dike ku hêman bi nerasterast bi bangek malloc li ser her têketinê têne hilanîn;
  • F14ValueMap - ji bo bişkokên piçûk vexwarina bîranîna hindiktirîn peyda dike. Hêman di şaneyên xwe de têne hilanîn (navdêr). Ji bo bişkojkên navîn û mezin, ev nêzîkatî dibe sedema zêdebûna bîranîna berbiçav;
  • F14VectorMap - ji bo tabloyên mezin û bişkokên tevlihev zûtir dixebite, lê ji bo bişkojkên hêsan û tabloyên piçûk hêdîtir dixebite. Hêman di nav rêzek domdar de têne pak kirin û ji hêla nîşankerek 32-bit ve têne navnîş kirin;
  • F14FastMap stratejiyek hevgirtî ye. Ger mifteyê ji 24 byte kêmtir be, wê demê F14ValueMap tê hilbijartin, û heke zêdetir be, F14VectorMap tê hilbijartin.

Facebook pêkanîna tabloyên hash F14 vedike

Source: opennet.ru

Add a comment