Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Emner
  • Opret bruger
  • Log ind
Se kommentarer (2)
Emner PHP, Open source

Så er det officielt: Facebook forvandler PHP til C++ med Hiphop

Hiphop for PHP er Facebooks nye vidundermiddel til at omdanne sløv PHP-kode til lynhurtig C++. Det betyder omkring 50 procent mindre CPU-tid på Facebooks webservere.

Af Mikkel Meister Onsdag, 3. februar 2010 - 10:04

Rygterne om en særlig optimeret udgave af PHP udviklet af Facebook har svirret de seneste par dage, og nu har den sociale hjemmeside bekræftet, at der er noget om snakken.

Hiphop for PHP hedder Facebooks nye værktøj, der dog hverken er en ny udgave af PHP eller en compiler i sig selv. Derimod er det et værktøj til at omdanne PHP-kode til optimeret C++-kode, som så kan oversættes med en C++-compiler og dermed give langt hurtigere og mindre hukommelseskrævende kode.

Dermed kan Facebooks udviklere fortsætte med at skrive i PHP, hvilket er noget nemmere at gå til, og samtidig opnå kraftige forbedringer af den sociale hjemmesides ydelse.

Facebook har over 400 milliarder PHP-baserede sidevisninger om måneden.

»Med Hiphop har vi reduceret CPU-forbruget på vores webservere med i gennemsnit omkring 50 procent, afhængigt af siden. Mindre CPU-forbrug betyder færre servere, hvilket igen betyder mindre overhead,« skriver senior server engineer Haipeng Zhao på hjemmesiden Facebook Developers.

Hiphop for PHP udgøres af omkring 300.000 C++-linjer, og Facebook finder det selv så anvendeligt, at værktøjet er frigivet som open source-kode.

PHP hurtig til udvikling, men kører for langsomt PHP er et scripting-sprog i samme familie som eksempelvis Python og Perl, og det er derfor nemt for udviklere at komme hurtigt udover stepperne, når der skal skrives ny kode.

Det har Facebook-udviklerne hidtil haft stor gavn af.

»I løbet af de seneste seks år har vi været i stand til at opnå meget takket været det hurtige udviklingstempo, PHP muliggør. Som programmeringssprog er PHP simpelt at lære, simpelt at skrive, simpelt at læse og simpelt at debugge,« skriver Haipeng Zhao.

Men Facebook har siden 2007 undersøgt mulighederne for at presse bedre ydelse ud af Facebooks kæmpe underskov af PHP-kode. Det har været særligt udfordrende, fordi de fleste af Facebooks hjemmesider udgøres af en Facebook-bruger, der er logget ind med sine egne indstillinger.

»Når du går ind og ser din Facebook-side, skal vi slå alle dine venner op, finde deres mest relevante opdateringer frem, filtrere resultaterne baseret på dine privacy-indstillinger, indsætte kommentarer, fotos og alle de andre data, folk holder af ved Facebook. Alt sammen på under ét sekund,« skriver Haipeng Zhao.

I praksis omdanner Hiphop PHP-kildekoden til C++-kode, som så efterfølgende oversættes med GNU-compileren g++. Samtidig udelades sjældent brugte features - eksempelvis funktionen eval() - fra den omdannede kode for igen at give bedre ydelse.

»Den største udfordring var at bygge bro mellem forskellene på PHP og C++. PHP er et scripting-sprog med dynamisk og svag typing, mens C++ er et oversat sprog med statisk typing,« skriver Haipeng Zhao.

Hiphop indeholder også en ny implementering af PHP's runtime-system og omskrevne udgaver af flere gængse PHP-udvidelser.

Ifølge seniorudvikleren har Hiphop for PHP været brugt det seneste halve år og bruges i øjeblikket til at levere mere end 90 procent af webtrafikken på Facebook.

Send Tweet
Udskriv

IT-job & karriere

  • Se alle it-job
  • Importer din kompetenceprofil fra LinkedIn
Udvikler med projektlederkompetencer søges til fast stilling
Udgivet 23. jan 12.37
Er du ekstrabladet.dk's nye udvikler med fokus på kommentarsystem og brugere?
Udgivet 2. feb 9.21
Dygtige PHP-udviklere søges til spændende fast stilling hos Fynske Medier
Udgivet 5. okt 2011 14.33
IT Manager with experience within logistics
Udgivet 8. feb 11.07

Kommentarer (2)

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Per Sikker Hansen 4. feb. 2010 - 13.12
 
Kun g++?

Eller er det muligt at compile det med fx LLVM?

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer
Lars Tørnes Hansen 26. aug. 2010 - 13.20
 
Re: Kun g++?

Ja det lader til at være tilfældet:

HipHop for PHP transforms PHP source code into highly optimized C++. It was developed by Facebook and was released as open source in early 2010. HipHop transforms your PHP source code into highly optimized C++ and then compiles it with g++ to build binary files. You keep coding in simpler PHP, then HipHop executes your source code in a semantically equivalent manner and sacrifices some rarely used features – such as eval() – in exchange for improved performance. Facebook sees about a 50% reduction in CPU usage when serving equal amounts of Web traffic when compared to Apache and PHP. Facebook’s API tier can serve twice the traffic using 30% less CPU.

Citatet er fra: http://wiki.github.com/facebook/hiphop-php/

  • Stem op 0
  • Stem ned 0
  • Log ind eller opret en konto for at skrive kommentarer

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Teknologirådet reddet: Fortsætter i ændret konstruktion

Udgivet 10. feb 11.32Opdateret 10. feb 11.32

Version2 tester: Her kan du fare vild i Windows 8

Udgivet 10. feb 10.44Opdateret 10. feb 11.04

Rygte: Google snart klar med Dropbox-konkurrent

Udgivet 10. feb 10.19Opdateret 10. feb 10.19

Ny blog stiller skarpt på juraen i it-kontrakter

Udgivet 10. feb 10.00Opdateret 10. feb 10.15

Windows 8 Consumer Preview klar til download 29. februar

Udgivet 10. feb 9.49Opdateret 10. feb 10.24
Flere it-nyheder »
Få it-nyheder og blogs hver dag med Version2's nyhedsbrev.

Seneste debat

  1. Konklusion af Polsag-review fra 2009: Elendig kode hånd i hånd med elendig kontrakt

    12 comments.
    Last update 12 minutter 22 sekunder
    Skrevet af Robert Larsen
  2. Er it-skandalerne kontrakternes skyld?

    2 comments.
    Last update 40 minutter 35 sekunder
    Skrevet af Nicolai Dragsted
  3. Microsoft frigiver Android-version af OneNote

    7 comments.
    Last update 43 minutter 9 sekunder
    Skrevet af Thomas Bundgaard
  4. Derfor bliver dårlige it-projekter ikke stoppet i tide

    3 comments.
    Last update 56 minutter 14 sekunder
    Skrevet af Kasper Jørgensen
  5. 4 gode sikkerhedsråd: Sådan gør du firma-pc'en vinterferieklar

    5 comments.
    Last update 1 time 9 minutter
    Skrevet af Thomas Vestergaard
  6. XBMC på fit-PC3

    19 comments.
    Last update 1 time 11 minutter
    Skrevet af John Knuhtsen
  7. Stop SOPA, PIPA, ACTA, TPP og alle dem der kommer efter

    53 comments.
    Last update 1 time 23 minutter
    Skrevet af Jesper Lund Stocholm
  8. It skal spare kommunerne for 165 millioner kroner i 2012

    1 comment.
    Last update 1 time 23 minutter
    Skrevet af Christian Nobel
Mere debat »

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Android
  • Bruttolønsordning
  • Business Intelligence
  • Cloud computing
  • Digitaliseringsstyrelsen
  • HTML5
  • Harddisk-priser
  • IE9
  • Intranet
  • It-sikkerhed
  • Kindle Fire
  • Multimedieskat
  • NemID
  • OS X Lion
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu 11.10
  • Virtualisering
  • Windows 8
  • Windows Phone 7
  • iOS 5
  • iPhone 4S

Tjenester

  • Android-app
  • iPhone-app
  • RSS-feeds
Følg @version2dk
Få it-nyheder og blogs hver dag med Version2's nyhedsbrev.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Skelbækgade 4 1717 København V
  • Tlf. work 33265300