Programmeringsspråk: Facebook åpner sin raske F14-hash-tabell skrevet i C ++

De beste programmeringsspråkene å lære i 2019: Topp kodingsevner som betaler deg mest Dette er språkene som er mest etterspurt og tilbyr høyest lønn.

Mer om innovasjon

  • IBM kunngjør gjennomslag av batteriteknologi
  • Augmented reality for business: Cheat sheet
  • Bilder: Verdens 25 raskeste superdatamaskiner
  • Inside the Raspberry Pi: Historien om $ 35-datamaskinen som forandret verden

Facebook har åpen tilgang til et av verktøyene den bruker for å administrere en enorm datamengde til daglig.

Den sosiale medier-giganten har lagt til F14-hasjbordet til Folly, dets åpen kildekodebibliotek med komponenter skrevet på C ++ programmeringsspråk.

Hash-tabeller brukes mye av programvare for raskt å lagre og slå opp data, og er verdsatt for deres evne til å slå opp data på en rettidig måte, selv når volumet av data som er lagret i tabellen øker.

"Folly's F14 er mye brukt i Facebook, " skriver Facebook-programvareingeniørene Xiao Shi og Nathan Bronson i et blogginnlegg, som fortsetter med å uttale hvordan F14 har forbedret effektiviteten i hverdagens hasjbordoperasjoner.

"F14 fungerer bra fordi kjernealgoritmen utnytter vektorinstruksjoner for å øke belastningsfaktoren mens den reduserer kollisjoner, fordi den støtter flere minneoppsett for forskjellige scenarier, og fordi vi har lagt merke til C ++ overhead i nærheten av API. F14 er et godt standardvalg - den leverer CPU- og RAM-effektivitet som er robust på tvers av en rekke brukssaker. "

Ettersom volumet av data som er lagret av selskaper fortsetter å øke, og med at hasjtabeller blir så mye brukt, mener Facebook at utgivelse av F14 - et 14-veis sonderende hasjbord - kan ha en betydelig innvirkning på programvarens muligheter.

"De er et så allestedsnærværende verktøy innen informatikk at til og med trinnvise forbedringer kan ha stor innvirkning, " skriver de.

Spesielt trekker Facebook frem hvordan F14 bruker en strategi som kalles chunking for å redusere sannsynligheten for kollisjoner, der flere nøkler i hasjbordet løser seg til samme matriseindeks, noe som kan bremse driften ved å kreve ekstra behandlingstid og minnetilgang.

Andre ytelsesgevinster blir gjort mulig ved å kutte minnet og CPU-overhead når du håndterer tomme spor i hasjbordet, noe som kan være spesielt nyttig for et hasjbord som håndterer mye innsats og sletter arbeidsmengder.

Minnebruk trimmes på forskjellige måter - som igjen kan forbedre ytelsen ved å la flere av programmets data få plass i cachen - inkludert ved å øke effektiviteten til bruk av matriser, samt ved å redusere metadataene knyttet til tildeling av en tabell og innsatsen og omskift operasjonene.

F14 bruker en hybrid lagringsstrategi kalt F14Fast, som velger den mest effektive tilnærmingen for lagring av data avhengig av verdityper.

Facebook sier at ytelsesøkningen levert av F14 også stammer fra å bruke mindre kode enn noen konkurrerende tilnærminger, med F14 som reduserer behovet for objektskonstruksjon og kopier, både inne i hasjbordet og i den omkringliggende koden.

Ved konvertering av eksisterende kode til F14, opplevde Facebook både enhetstestfeil og produksjonsulykker, med selskapets blogginnlegg som beskrev arten av feilene det oppsto og hvordan det fungerte rundt dem.

For å eksperimentere med F14 selv, sjekk ut prosjektsiden på GitHub.

Hvis du er en utvikler som bruker C ++, kan du sjekke de viktigste nye C ++ - relaterte funksjonene i Microsofts Visual Studio 2019 IDE, eller hvis du vil lære det kommende C ++ - alternativet Rust, har TechRepublic avrundet de beste gratis ressursene online.

Nyhetsbrev om innovasjon

Vær kjent med smarte byer, AI, Internet of Things, VR, AR, robotikk, droner, autonom kjøring og mer av de kuleste teknologiske nyvinningene. Leveres onsdager og fredager

Registrer deg i dag

© Copyright 2020 | mobilegn.com