sábado, enero 04, 2014

HHVM: Hip Hop Virtual Machine for PHP, el futuro de PHP

HHVM (Hip Hop Virtual Machine for PHP) es una nueva máquina virtual para la ejecución Just In Time (JIT) de código PHP, cuya performance respecto al intérprete de PHP  ha demostrado ser hasta hasta 6 veces más rápido [1]

Hhvm fue creado por Facebook en el 2008 como HPHP (Hip Hop for PHP), un compilador escrito en C++, el cual convierte el código php en C++ y lo compila, obteniendo una performance superior al intérprete. El objetivo de Facebook con hphp. fue el de acelerar la ejecución de su plataforma web, ya que el intérprete ofrecía serios problemas de performance ante la masiva concurrencia de usuarios.

El compilador hphp evolucionó en el 2011 hasta convertirse en una máquina virtual JIT y de ahí nace hhvm. Hhvm ejecuta el código php convirtiéndolo primero a bytecode (Hip Hop Byte Code: HHBC) y almacenando este bytecote en una base de datos sqlite; la primera ejecución suele ser más lenta que las siguientes; por el proceso de conversión, pero aún así es más rápido que el intérprete estándar de php O_O.
Uno de los objetivos fundamentales de hhvm es ser 100% compatible con php 5.4/5.5 y dar soporte a las funciones eval() y create_function(), que no eran soportados por el anterior compilador.

La importancia de hhvm es que se avizora como el futuro de PHP, lo que vendría a ser un PHP6 pues el intérprete Zend no ha evolucionado como debería, presenta aún la deficiencia de rendimiento de los lenguaje interpretados y por sobre todo es difícil crear nuevas extensiones, ya que estas se tienen que escribir con lenguaje C.

Con hhvm, PHP se acerca al modelo de la JVM, ejecución JIT, soporte multithread, bytecode y lo más importante la posibilidad de crear extensiones con buena performance en el lenguaje PHP, sin necesidad de recurrir al lenguaje C.

Actualmente hhvm se desarrolla a un ritmo vertiginoso, siendo sus objetivos primordiales mejorar aún más la performance de la Virtual Machine, añadir más extensiones de Zend y ser compatible al 100% con las frameworks de PHP más populares como Symfony, drupal, doctrine2, Zend Framework2, codeigniter, slim, etc.

Adicional a esto Facebook ha publicado la extensión hhvm fastcgi para la ejecución de código PHP con los principales servidores web: Apache y nginx como un módulo fastcgi.
Con la extensión fastcgi se puede ejecutar muchas aplicaciones web desarrolladas en PHP, siendo aún los principales problemas la falta de extensiones como mysqli, gd, intl(implementado parcialmente), etc.

Recursos de hhvm
Sitio Web: http://www.hhvm.com/blog/
Github:      https://github.com/facebook/hhvm
Wiki:          https://github.com/facebook/hhvm/wiki

No hay comentarios.: