Szerző: Bizó Dániel

2010. február 3. 16:52

PHP-gyorsítót adott ki a Facebook

Kiadta a Facebook annak a PHP-gyorsító szoftvernek a forráskódját, amelynek segítségével a saját portáljára beözönlő hatalmas látogatói tömeget is kiszolgálja. A HipHop for PHP lényegében nem tesz mást, minthogy a PHP szkriptet a sokkal hatékonyabb C++ kódra fordítja át, majd abból generál gépi kódot.

A Facebook ügyes húzással már korábban jelezte, hogy valami nagyon fontosat jelent majd be február másodikán. A HipHop for PHP a Facebook belső fejlesztése, amelyen az elmúlt két és fél évben dolgozott néhány programozó, és már éles üzemben használja a világ legnagyobb közösségi oldala. A fejlesztés motivációja az volt, hogy a PHP-ban létrehozott hatalmas szkripttömeget automatizáltan, programozástechnikailag helyesen át kellene fordítani egy olyan nyelvre, amelyből az erőforrásokkal sokkal hatékonyabban bánó gépi kód generálható.

Ilyen fordítók egyébként már vannak a piacon, ezek azonban szintén kevéssé hatékony Java, a Windowshoz kötődő .Net, vagy a már nem éppen legkorszerűbb C nyelveket célozták meg. A Facebook egyik fejlesztője, Haiping Zhao ezért egy olyan konvertáló megoldást akart, amely a Facebook PHP szkriptjeit egy modern és hatékony nyelvre interpretálja, és a szervereken már gépi kód formájában futtathatóak.

Miután a PHP Zend motorjának továbbfejlesztése és a különféle cache trükkök nem hozták meg a kívánt eredményt, a PHP-s kódot és környezetet pedig migrálni egy másikba kezelhetetlen méretű akadály lett volna, nem beszélve a PHP-s fejlesztők tudásának kárba veszésével. Zhao választása a C++ nyelvre esett. A tét sem volt kicsi, a Facebook másodpercenként átlagosan 150 ezer, komplex logikájú weblekérést szolgál ki, így az erőforrások hatékonyabb kihasználása hatalmas megtakarítási lehetőségeket rejt.

A HipHop több lépésben kezeli a PHP szkriptet, elemzésnek veti alá többek közt a függőségek feltérképezésére, készít köztes optimalizált változatot, kiértékeli, hogy melyik PHP változó milyen C++ típusnak feleltethető meg a leginkább hatékonyan, újabb köztes kódot készít, majd ez alapján elvégzi a C++ kód legenerálását. A C++ forrásból végül a g++ fordítóprogrammal elkészülhet a végrehajtható bináris a célplatformra.

\"\"

A fejlesztők közlése szerint a HipHoppal az oldalak bonyolultságától függően nagyjából felére csökkenthető a processzorokon a terhelés, ami hatalmas megtakarítást jelent ebben a léptékben. A Facebooknak olyannyira bevált a HipHop, hogy 90 százalékban már így szolgálja ki a látogatói lekéréseket, és már fél éve használja éles üzemben. Végeredményben a fejlesztők sikeresen ötvözték a PHP egyszerűségét és rugalmasságát, valamint a C++ hatékonyságát. A 300 ezer sornyi kódot a Facebook PHP licenc alatt fogja kiadni a GitHubon. További részletek itt.

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról