Resoldre Tots Els Problemes De Windows I Altres Programes

Facebook llança un compilador PHP a temps

En el seu continu esforç per atendre els seus 800 milions d’usuaris el més ràpidament possible, Facebook torna a renovar la manera com maneja les seves pàgines web basades en PHP.

Divendres, Facebook publicat a GitHub la seva màquina virtual HipHop (HHVM), que els enginyers de la companyia anomenen compilador de PHP just in time. Segons Facebook, aquest motor d'execució de PHP és un 60% més ràpid que el seu intèrpret PHP actual i utilitza un 90% menys de memòria.



Actualment, Facebook utilitza HHVM en els seus entorns de prova com a substitut del seu intèrpret PHP de fabricació pròpia, i té previst utilitzar-lo per executar el codi PHP del seu lloc web.



Facebook va fer pública la seva recerca d'un codi PHP més ràpid el 2010, quan ho va fer alliberat el que anomenava un transformador de codi font PHP, anomenat HipHop, que ja havia estat utilitzant en producció.

PHP era dissenyat originalment com a llenguatge de seqüència d’ordres web, s’utilitza per afegir contingut dinàmic a les pàgines web. PHP és una part vital de Facebook, ja que, juntament amb JavaScript, s'utilitza per ajudar a muntar la pàgina d'inici única de cada usuari. Tanmateix, com passa amb el codi renderitzat per la majoria dels llenguatges de script, les aplicacions PHP no s’executen tan ràpidament com els programes escrits en llenguatges de programació de ple dret com C ++, que es compilen amb antelació en codi de bytes llegible per màquina.



HipHop de Facebook transforma les extensions PHP en codi C ++ molt optimitzat, cosa que significa que funcionen més ràpidament quan s’executen. Els desenvolupadors de PHP de Facebook poden escriure les seves extensions en PHP i fer que HipHop la transformi en codi C ++, que després es pot compilar en objectes binaris ràpids.

L’empresa va migrar tots els seus propis servidors a HipHop el 2010, afirmant que havia reduït l’ús de CPU a la meitat. L’empresa va publicar el codi font d’HipHop perquè altres també el poguessin utilitzar.

En aquell moment, Facebook també va desenvolupar un intèrpret PHP, anomenat HPHPi, que permet als desenvolupadors PHP executar el seu codi PHP sense compilar-lo. El codi executat a HPHPi és més lent que el codi compilat i executat a HipHop, però proporciona als desenvolupadors una manera més senzilla de depurar el seu codi.



Amb HHVM, els enginyers de Facebook han combinat la velocitat d’un llenguatge compilat amb la flexibilitat d’un llenguatge amb script. 'Un traductor dinàmic pot observar els tipus de dades a mesura que s'executa el programa i generar un codi de màquina especialitzat', va escriure l'enginyer de programari de Facebook Jason Evans, en una publicació al bloc. anunciant l’alliberament d’HHVM.

HHVM també resol un problema intern per a Facebook. HPHPi i HipHop 'no tenen una semàntica de llenguatge idèntica', va escriure Evans en una entrevista per correu electrònic. Això significa que el codi que funciona perfectament en un entorn de prova HPHPi pot no funcionar a HipHop.

Tot i que Facebook va dissenyar HHVM principalment per al seu propi ús, aquestes tecnologies d’acceleració de PHP també poden ser útils per a altres organitzacions que utilitzen PHP, va dir Al Hilwa, analista de programari IDC. 'El codi PHP realment complex es pot beneficiar d'aquest tipus d'optimització', va dir. 'PHP és el llenguatge dominant del servidor i hi ha aplicacions sorprenentment grans escrites en PHP.'

Segons Evans, encara s’ha de treballar en HHVM. L’intèrpret encara s’ha d’ajustar per a l’ús de producció. Cal millorar la memòria cau de la traducció i reduir-ne l’ús de memòria.

'Esperem que la comunitat PHP trobi [HHVM] útil a mesura que maduri i participi amb nosaltres per ampliar la seva utilitat a través de debats tècnics, informes d'errors i aportacions de codi', va escriure Evans.

Joab Jackson cobreix les últimes novetats sobre programari empresarial i tecnologia general El servei de notícies IDG . Segueix Joab a Twitter a @Joab_Jackson . L’adreça de correu electrònic de Joab és Joab_Jackson@idg.com