Rendimiento de Prestashop en PHP 5.6, PHP 7 y HHVM

Es innegable que PHP está viviendo una nueva juventud, en algunos círculos se habla de renacimiento y todo viene propiciado por 2 elementos clave: la comunidad y el lanzamiento de PHP 7.

Por un lado la comunidad ha madurado, prueba de ello es el enfoque centrado en la calidad del código que cada día está más extendido, fundamental en las librerías y frameworks que ofrecen los principales actores de la escena PHP hoy en día. Otro punto clave ha sido la generalización del uso de composer como gestor de dependencias que a su vez ha favorecido una mentalidad enfocada a las pequeñas librerías de calidad en lugar de grandes paquetes mediocres.

El otro elemento revulsivo que ha causado gran impacto es el lanzamiento de la versión 7 de PHP que tras la cancelación de PHP 6 y algunos retrasos llega llena de características nuevas (declaraciones de tipo escalar y de retorno, clases anónimas, null coalescing operator, etc ) pero sobretodo unas espectaculares mejoras de rendimiento cercanas al 100% en muchos casos y que acercan a PHP a los niveles de rendimiento de HHVM.

programacion php

Para probar el impacto real que tiene esa mejora de rendimiento sobre un sistema y dada la experiencia que tenemos en Acceseo con Prestashop, qué mejor que utilizar la famosa plataforma de e-commerce. Un proyecto de código abierto que pone de manifiesto el interés por la mejora de su código con el proceso de inclusión de componentes de Symfony que ha empezado.

Utilizaremos tres instalaciones limpias de prestashop con los datos de ejemplo que vienen incluidos funcionando sobre máquinas virtuales gestionadas usando vagrant con ubuntu/vivid64 como base con la única diferencia de la versión de PHP o HHVM: una con PHP 5.6, otra con PHP 7 y la otra con HHVM, a continuación se detalla algunos puntos interesantes de la configuración de PHP:
Máquina virtual PHP5

Versión PHP: 5.6.4 (paquete php5 existente en los repositorios de Ubuntu)
Versión Apache: 2.4.10
Server API: Apache 2.0 Handler

Máquina virtual PHP7

Versión PHP: 7.0.2-2 (paquete php7.0 disponible en el PPA de Ondřej Surý ondrej/php)
Versión Apache: 2.4.10
Server API: Apache 2.0 Handler

Máquina virtual HHVM

HHVM Version 3.11.0 (paquete hhvm disponible en el repositorio de HHVM)
PHP Version 5.6.99-hhvm
hhvm.server.type fastcgi

– La máquina PHP5 utilizará el paquete php5
– La máquina PHP7 utilizará el paquete php7.0 disponible en el PPA de Ondřej Surý ondrej/php
– La máquina HHVM utilizará el paquete hhvm disponible en el repositorio de HHVM.

Puesto que es una prueba orientativa vamos a simplificarla todo lo posible y se realizarán todas las medidiciones sobre un ordenador con una CPU Intel i7-4720HQ y 8 GB de memoria RAM de los que se ceden a las máquinas virtuales 1.5 GB de memoria y 3 cores. La prueba consisitirá en medir utilizando la utilidad ApacheBench 2.3 el tiempo de carga de 1000 peticiones realizando como máximo 10 de manera simultánea.

Comparativa de tiempos de respuesta

Versión Tiempo mínimo Media Mediana Tiempo máximo Peticiones por segundo
PHP 5.6.4 188 ms 491 ms 491 ms 813 ms 20,32
PHP 7.0.2 104 ms 284 ms 287 ms 478 ms 35,14
HHVM 3.11.0 107 ms 250 ms 251 ms 959 ms 39,89

Conclusiones

Como podemos observar en la tabla HHVM sigue dominando en cuanto a rendimiento pero con la llegada de PHP 7 la diferencia se ha recortado de manera notable. Teniendo en cuenta la diferencia de rendimiento entre PHP 5.6 y PHP 7 la actualización, siempre que el proyecto nos lo permita, es más que recomendable.

¿Tienes alguna incidencia?

Cuéntanos qué ocurre
y nos pondremos con ello lo antes posible.

Este sitio está protegido por reCAPTCHA, y la Política de privacidad y Términos de servicio de Google.
Sucríbete a
nuestra newsletter

para estar al día en el mundo online

¡Cuéntanos tus ideas!
+34 96 653 19 14
+info@acceseo.com
He leído y acepto la política de privacidad

Este sitio está protegido por reCAPTCHA, y la Política de privacidad y Términos de servicio de Google.