HipHop, el acelerador PHP de Facebook

HipHop, el acelerador PHP de Facebook

por

Lo prometido es deuda

hiphop_logo_whiteFinalmente, lo que ayer era un rumor, y hoy en la mañana algo dado por hecho,  se cumplió. Bueno… casi. Se hablo de un acelerador, un compilador y una reescritura de la máquina virtual Zend, y aunque en un plano general era cierto que Facebook estuvo años trabajando en silencio para desarrollar una tecnología que acelerara PHP, en la práctica lo hicieron mediante un enfoque distinto.

Haiping Zhao, del equipo de ingenieros de Facebook, publicó hoy un artículo comentando que Facebook había optado por PHP por considerarlo un lenguaje simple de aprender, simple de escribir, simple de leer y simple de debuguear, pero que al mismo tiempo estaban conscientes de que en comparación con C++ o Java corría más lento y consumía más procesador. Paralelamente, por estar basado en C es posible traducir casi completamente cualquier script de PHP a C++, ya sea mediante reescritura de funciones o generando extensiones como las de PECL.

Con la ayuda de Iain Proctor y Minghui Yang conformaron un equipo de desarrollo que terminó creando HipHop, algo que no es acelerador ni compilador, sino más bien un convertidor de código, que transforma scripts PHP a C++ y luego compila el C++ usando g++. Hay dos maneras de manejar esto: trabajando con los scripts compilados o bien usando HPHPi, un intérprete experimental que permite trabajar con HipHop tal como si se estuviera programando en PHP tradicional, para que no sea necesario compilar antes de correr el script. Aquí entre nos, me gustaría entender por qué es necesario HPHPi, si bastaría correr el script sin usar HipHop.

hiphop_transformation_process

Actualmente Facebook dice que el 90% de los scripts que están corriendo pasa por HipHop, y que gracias a eso ahorran algo así como el 50% del uso de CPU. Menos uso de CPU significa menos servidores o la capacidad de crecer al doble con un mismo presupuesto. Considerando que cada uno de los 400.000 millones de pageviews mensuales que registra el sitio conlleva una serie de cálculos y algoritmos complejos,  ahorrarse la mitad de la carga implica una gran diferencia en dinero.

El código de HipHop será puesto disponible para descarga en los próximos minutos, pero por su descripción no es algo que se puede instalar como si nada en los actuales servidores. Hará falta un largo periodo de adaptación antes de poder pronunciarnos sobre el comportamiento real. No es que pongamos en duda la palabra de Facebook, pero lo que funciona de una manera en su layout no necesariamente funcionará igual en el nuestro.

Link: HipHop for PHP: Move Fast (Facebook)