Blog

Blog sobre desarrollo web, diseño y tecnología. Consejos y trucos.

24

Oct 2013

Aumenta la velocidad de PHP hasta un 400% gracias a los ingenieros de Facebook y HipHop Virtual Machine

Publicado por / en Blog, Consejos y Trucos / Link

¿Imaginas la velocidad que alcanzaría PHP si pudiáramos compilar su código como hacemos con C++?

Esta pregunta se la hicieron los chicos de Facebook hace ya mucho tiempo e hicieron la prueba…

Actualmente Facebook tiene más de 1.150 millones de usuarios y sirve cientos de miles de millones de páginas cada mes. Según los datos aportados por Facebook en su presentación Taking PHP Seriously, el repositorio de código de esta conocida aplicación contiene decenas de millones de líneas de código en PHP. En esta misma presentación se comenta que:

los buenos ingenieros son increíblemente productivos al programar con PHP.

Para entender bien lo que viene a continuación, tenemos que responder a la siguiente cuestión:

¿Cuál es la diferencia entre un lenguaje compilado y un lenguaje interpretado?

Lenguaje Compilado:
Un lenguaje compilado es término un tanto impreciso para referirse a un lenguaje de programación que típicamente se implementa mediante un compilador. Esto implica que una vez escrito el programa, éste se traduce a partir de su código fuente por medio de un compilador en un archivo ejecutable para una determinada plataforma.

Lenguaje Interpretado:
Un lenguaje interpretado es aquel en el que las instrucciones se traducen o interpretan una a una en tiempo de ejecución a un lenguaje intermedio o lenguaje máquina o a través de una máquina virtual, siendo típicamente unas 10 veces más lentos que los programas compilados.

Como PHP es un lenguaje interpretado, su ejecución siempre es más lenta que la de los lenguajes compilados como Java o C++. Para mejorar el rendimiento de PHP, los ingenieros de Facebook desarrollaron una herramienta llamada HipHop y que transformaba el código PHP en código C++ para poder compilarlo antes de ejecutarlo. A pesar de que parecía una herramienta muy prometedora, su uso no era sencillo, por lo que solamente merecía la pena su uso para las aplicaciones PHP gigantescas, como por ejemplo Tuenti.

Debido a todos estos problemas, los mismos ingenieros de Facebook desarrollaron otra herramienta llamada HHVM (HipHop Virtual Machine) y que ha reemplazado a HipHop, declarada obsoleta desde principios de 2013. HHVM es esencialmente una máquina virtual para ejecutar PHP, un concepto similar al utilizado por Java. Hace unas semanas, el equipo de Facebook presentó la nueva versión de HHVM, más rápida que HipHop pero con un grave problema: todas las suites de tests de todos los proyectos importantes de PHP producían errores, entre ellos Symfony2 y Twig.

El 18 de octubre de 2013 Facebook presentó la nueva versión HHVM 2.2.0, que puede marcar un antes y un después en la historia de PHP, ya que:

  1. Su instalación es muy sencilla, ya que se distribuye como paquete para Ubuntu, Debian, Fedora y Mint.
  2. Mejora significativamente la compatibilidad con las nuevas funcionalidades de PHP 5.4.
  3. Añade compatibilidad total con las aplicaciones Symfony2, las plantillas Twig y las aplicaciones de otros frameworks como Laravel y CodeIgniter.

Facebook ha prometido seguir mejorando HHVM hasta conseguir ejecutar correctamente cualquier aplicación PHP 5.4/5.5. Si lo consigue y sigue mejorando su instalación y uso, HHVM podría convertirse en un serio rival del Zend Engine con el que se han ejecutado la mayoría de aplicaciones PHP desde hace más de 10 años.

Por favor, selecciona una red social para compartir:

Tu también nos gustas :)
POST SIMILARES
comments powered by Disqus