Symfony y Twig ya son compatibles con HHVM
Facebook es el sitio web más popular del mundo y la aplicación PHP más grande jamás creada. Actualmente tiene más de 1.150 millones de usuarios, a los que sirve cientos de miles de millones de páginas cada mes. A pesar de los cambios tecnológicos surgidos en los últimos años, Facebook permanece fiel a PHP desde sus comienzos en 2004. A modo de anécdota, puedes ver parte del código fuente de Facebook en 2007.
Según los datos aportados por Facebook en su presentación Taking PHP Seriously, el repositorio de código de Facebook contiene decenas de millones de líneas de código PHP. Además, en la misma presentación se comenta que "los buenos ingenieros son increíblemente productivos al programar con PHP". Por todo esto, parece improbable que Facebook cambie PHP por algún otro lenguaje, al menos a medio plazo.
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.
Hoy Facebook ha presentado la nueva versión HHVM 2.2.0, que puede marcar un antes y un después en la historia de PHP, ya que:
- Su instalación es muy sencilla, ya que se distribuye como paquete para Ubuntu, Debian, Fedora y Mint.
- Mejora significativamente la compatibilidad con las nuevas funcionalidades de PHP 5.4.
- 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.
Actualización 22 octubre: los primeros benchmarks muestran que las aplicaciones Symfony ejecutadas sobre HHVM mejoran su rendimiento más de un 400%: ver resultados del benchmark
Comentarios
-
#1
Que buena noticia!! creo que la gente de Resin tambien esta haciendo avances, tiene una muy buena performance
-
#2
Usando un simple test : gist.github.com/puentesdiaz/7086714
Mi apache tiene:
- APC Version: 3.1.13
- PHP Version: 5.4.9-4ubuntu2
- APC Host: localhost (NB) (127.0.0.1)
- Server Software: Apache/2.2.22 (Ubuntu)
Engine Duración Apache+PHP 8.1604177951813 Resin Server 4.0.36 4.3678660392761 HHVM 2.2.0 2.2583630084991 ¿Alguien tiene un mejor script para probar?
-
#3
grandioso! ya tengo plan para este fin de semana
-
#4
@Roberto, lo ideal sería que pudieras probar una aplicación Symfony2. He leído en Twitter algunos comentarios sobre mejoras de rendimiento de más del 300% y estaría bien poder comprobarlo.
-
#5
Muchísimas gracias por la información, esto si que es prometedor. Espero que sigan adelante.
-
#6
Por si a alguien le interesa, unos benchmarks con Symfony en HHVM: blog.liip.ch/archive/2013/10/29/hhvm-and-symfony2.html
-
#7
Hay que afinar el php.ini de hhvm, aun tiene problemas con el date.timezone https://github.com/facebook/hhvm/issues/1222
pero por el rendimiento he obtenido un factor de 25X en algo sencillo como una funcion fibonacci por el resto , me da similar a otros test http://symfony.puentesdiaz.com.ar/php-performance-hhvm-php5-5-opcache/
Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente
unos meses después de su publicación para asegurar que estos sigan
siendo relevantes.
Proyectos Symfony destacados
La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.