HipHop para PHP

Facebook entrega a sus usuarios un número mensual aproximado de 400.000.000.000 páginas web, casi todas creadas con scripts programados con lenguaje PHP. La cifra no es menor e implica para la empresa, entre otras cosas, un alto consumo de recursos de cómputo, así como un impacto económico de igual proporción. ¿Qué fue lo que hizo un equipo de ingenieros para que ese monstruo de las redes sociales bajara sus costos? Adivinaron: HipHop, un optimizador para PHP.

Los que comenzó como un pequeño experimento nocturno de Haiping Zhao en el que buscaba soluciones para mejorar el desempeño de PHP, terminó convertido en una interesante máquina de software que transforma código PHP en código C++.

Normalmente el código PHP se ejecuta sobre una pequeña máquina virtual llamada Zend, que luego genera código HTML listo para ser entregado a un servidor web (Apache, en la mayoría de los casos). Con HipHop para PHP, el equipo de Facebook liderado por Zhao, ensancha el cuello de botella creado por un lenguaje de scripts como PHP para crear a partir de él código equivalente en C++ que puede ser compilado (con GNU GCC) para aprovechar de manera óptima recursos como CPU y memoria.

Haiping Zhao describe los detalles de la creación y el funcionamiento de HipHop para PHP en el blog de desarrolladores de Facebook. Allí podemos enterarnos de que HipHop

  • No es un compilador, estrictamente hablando.
  • No funciona con Apache, pero esperan que sí lo haga en el futuro.
  • Desarrollaron un servidor web especializado.
  • Reduce el uso del CPU hasta en un 50%, comparado con Apache y PHP.
  • Y hace que Facebook sirva dos veces más tráfico usando 30% menos CPU.

Para la comunidad open source la buena noticia es que Facebook libera las 300.000 líneas de código de HipHop con licencia PHP. Con esto, la empresa de Marck Zuckerberg devuelve a la comunidad algo de lo mucho que ha recibido de ella.

Recibe cada mañana nuestra newsletter. Una guía para entender lo que importa en relación con la tecnología, la ciencia y la cultura digital.

Procesando...
¡Listo! Ya estás suscrito

También en Hipertextual: