Rekommenderad, 2024

Redaktörens val

Facebook-inläggets interna C ++-programbibliotek

Darius Rucker - Wagon Wheel (Official Video)

Darius Rucker - Wagon Wheel (Official Video)
Anonim

Facebook har släppt ett bibliotek av C ++-programvarukomponenter som används för att hjälpa till att köra sin webbplats, meddelade det sociala nätverket företaget lördag.

Genom att släppa det här biblioteket Folly, kommer Facebook att kunna släppa fler av sina interna program som öppen källkod, eftersom de är beroende av olika komponenter i det här biblioteket.

"En klar flaskhals för att släppa mer arbete har varit att alla öppna projekt som behövdes för att bryta beroenden på oleverantör av internt bibliotekskod", skrev Facebook-programvaruingenjör Jordan DeLong, som

Facebook-ingenjörer meddelade också utgåvan på en C ++-konferens som företaget håller lördag på campus i Menlo Park, Kalifornien.

Fa cebook har åberopat öppen källkod, till exempel MySQL, PHP och memcached, för att köra sina webbplatser. Och så har företaget lagt fram en punkt att släppa sina egna interna program som öppen källkod, till exempel HipHop PHP-kompilatorn och Service-delningsramen för Thrift.

För många av sina öppna källmeddelanden har Facebook-utvecklare dock var tvungen att skriva om några av funktionaliteten som lånades från detta bibliotek. Genom att släppa biblioteket själv kommer Facebook att kunna "fortsätta öppna sourcing delar av [sin] stapel utan att tillgripa att uppfinna … inre hjul", skriver DeLong.

Även om utvecklare inte planerar att använda Facebook-utvecklade applikationer, ska fortfarande kolla på det här biblioteket, eftersom det innehåller många verktyg som kan användas i andra miljöer, säger DeLong. Många av de tillgängliga komponenterna i Folly går fortare än deras motsvarigheter som finns tillgängliga på andra ställen, skryter han. "Vår motivation var att bygga komponenter som var snabbare och effektivare än vad vi tidigare använde", skrev han. Dessa verktyg var utformade för att användas i tunga produktionsmiljöer, över tusentals servrar.

Komponenterna täcker en rad funktioner. En komponent utformades för att använda minnet mer effektivt. En annan minskar påståendet. AtomicHashMap-verktyget sänker hur länge en bit data i minnet är låst av en operation, vilket kan sakta ner prestanda och orsaka flaskhalsar i kraftigt använda miljöer. En uppsättning strängmanipuleringskomponenter använder färre CPU-cykler än formateringar i andra C ++-bibliotek, DeLong pralade.

Folly-biblioteket är publicerat på GitHub, och Facebook kommer att lägga till nya komponenter som de är skrivna, enligt DeLong.

Joab Jackson täcker företagsprogramvara och allmänt tekniskt brytande nyheter för IDG News Service. Följ Joab på Twitter på @Joab_Jackson. Joabs e-postadress är [email protected]

Top