A blog about data, information and Tech by Mario Alberich

        

#hhvm en #magento y #symfony

A partir de lo comentado en el anterior artículo sobre HHVM, me quedaba por aclarar su funcionamiento con la herramienta PHP más popular para crear sitios e-commerce: Magento.

Magento es uno de los casos más evidentes de la lentitud de PHP para aplicaciones medianamente grandes. El caso de Magento es el de una aplicación que utiliza varios miles de clases, con una estructura de directorios en los que se buscan estas clases, y en un proceso de interpretación del código que provoca una ejecución lenta. A pesar de usar PHP de forma intensiva (si no lo haces, puedes morir en el intento), Magento es lento. Y parte de la responsabilidad de ese hecho es de PHP.

Así que una vez aceptado el problema, HHVM puede ser la solución. ¿Cómo funciona HHVM con Magento? Pues la respuesta: no funcionaba. HHVM no incluye de serie algunas funcionalidades necesarias para Magento.

Adaptar HHVM, adaptar Magento


Mejorar el rendimiento de Magento es un objetivo común en todo el ecosistema de Magento, por eso no se hizo de esperar un análisis sobre el proceso de adaptación de HHVM a Magento, y un poco más tarde una solución publicada en Github por Matheus Zeiss para poder ejecutar un Magento básico sobre HHVM.  Con esta implementación, podemos ver una muestra de importación de productos en Magento usando HHVM, que tiene una pinta impresionante:

magento-import-test-hhvm from derp on Vimeo.

También podemos ver unas instrucciones de Cyrill Schumacher en Github para ejecutar Magento Enterprise Edition con HHVM, o el proceso de reindexación ejecutado por Daniël Sloof y mostrado en una captura de pantalla en su cuenta de Twitter.

¿Y ya está? ¿Magento funciona sobre HHVM? Para nada. Cada nuevo módulo que se instale en Magento deberá ser probado para que funcione sobre HHVM, y en caso contrario modificar su código. O eso, o bien esperar a que HHVM vaya incorporando esas funcionalidades.

Symfony


Symfony, el Framework PHP que tiene más estrellas en GitHub, es otro de los agraciados con la mejora de rendimiento. Además de las mejoras publicadas en los tests del blog de HHVM, hay otras pruebas más básicas realizadas con ApacheBench. Digna de mención es esta presentación en Slideshare sobre HHVM y Symfony:

HipHop VM: overclocking Symfony from Vadim Borodavko

© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.