PHP 7.1.0 FUE LANZADO UN PAR DE SEMANAS ANTES. TODAS LAS VERSIONES DE PHP INFERIORES A 5.6.X FUERON ANUNCIADOS COMO DESACTUALIZADOS Y NO SON SOPORTADOS POR LOS DESARROLLADORES. ALGUNOS PROVEEDORES DE DISTRIBUCIÓN AÚN APOYAN LAS ACTUALIZACIONES DE SEGURIDAD EN TÉRMINOS DE SOPORTE A LARGO PLAZO, PERO NUNCA OBTENDRÁS LAS NUEVAS CARACTERÍSTICAS CON ELLAS. ¡Hola, lectores del blog de Amasty! Hemos estado publicando pruebas de rendimiento de Magento durante bastante tiempo. Durante los últimos meses, nuestros lectores nos pidieron que probáramos el rendimiento de Magento 1 y Magento 2 con las nuevas versiones de PHP. ¡Y ese día ha llegado!
Resumen del artículo [ ocultar ]
- ¿Has visto nuestra nueva guía de optimización de JS?
- Por qué estamos probando la velocidad de Magento nuevamente
- Lo que usamos para probar el rendimiento de Magento
-
-
- Software
- Versiones de Magento
- Servidor (una máquina virtual)
-
-
- Magento 1.x y PHP 7
- Escenario de prueba de rendimiento de Magento
- Algunos detalles de la prueba.
-
-
- Leer más: Pruebas e investigación de velocidad de Amasty
-
-
- Resultados de las pruebas: datos y diagramas
- Diseccionando los resultados de la prueba
- Descargar PDF de investigación gratis
¿Has visto nuestra nueva guía de optimización de JS?
Déjanos tu email y te lo enviamos en el momento.
Por qué estamos probando la velocidad de Magento nuevamente
¿Por qué estamos probando Magento 1 y Magento 2 para comprobar la velocidad y el rendimiento en función de diferentes factores? La velocidad y el rendimiento del sitio son un factor crucial para el comercio electrónico, tanto en lo que respecta a las oportunidades de SEO como al comportamiento de los clientes. A pesar del hecho de que PHP 7 agrega más del 50% al rendimiento del sitio en general, todavía un número significativo de tiendas Magento utilizan la versión anterior de PHP. Para estimular a los propietarios de tiendas a cambiar a opciones más rápidas, hemos comparado el rendimiento de diferentes versiones de Magento en varias versiones de PHP. Además, esta información puede ser útil para todas las personas que trabajan con Magento: agencias, desarrolladores, especialistas en SEO y la comunidad de Magento en general.
Lo que usamos para probar el rendimiento de Magento
Software
- Paquete de distribución de Debian 8.6 (64 bits)
- apache 2.4.10
- Servidor Percona 5.6.33
- PHP 5.6.27, PHP 7.0.13, PHP 7.1.0
Versiones de Magento
- CE 1.9.3.1 con datos de muestra
- EE 1.14.2.1 con datos de muestra
- CE 2.1.2 (los datos se generaron a través de performance-toolkit, perfil medium.xml)
- EE 2.1.1 (los datos se generaron a través de performance-toolkit, perfil medium.xml)
*Con Magento 1.x, la compilación estaba activada, con Magento 2.x, el modo de producción también estaba activado.
Servidor (una máquina virtual)
- 4 núcleos de CPU
- RAM de 8GB
- almacenamiento SSD
* Amasty recomienda esta configuración como un kit de inicio para administrar una tienda Magento.
Magento 1.x y PHP 7
Como Magento 1.x no es oficialmente compatible con PHP 7, aplicamos un parche simple para EE 1.14.2.1. [php]</pre> — app/code/core/Mage/Core/Model/Layout.php.orig 2016-12-01 09:09:13.392844463 +0000 +++ app/code/core/Mage/Core/ Model/Layout.php 2016-12-01 09:08:36.516177798 +0000 @@ -552,7 +552,7 @@ $out = ”; if (!empty($this->_output)) { foreach ($this->_output as $callback) { – $out .= $this->getBlock($callback[0])->$callback[1]( ); + $out .= $this->getBlock($callback[0])->{$callback[1]}(); } <pre>[/php] Nota: este parche no es una solución completa para ejecutar Magento 1 en PHP 7 y no se recomienda su uso en una tienda de producción. Sin embargo, esta versión es suficiente para ejecutar las pruebas.
Escenario de prueba de rendimiento de Magento
Las pruebas de rendimiento utilizaron el siguiente escenario con Apache jMeter 3.1:
- Cargando la página de inicio
- Cargando página de categoría
- Realizando búsqueda
- Cargando la página del producto
Algunos detalles de la prueba.
- 5 subprocesos se ejecutan simultáneamente, cada uno de ellos tiene 100 bucles en total. En esta prueba, no hacemos pruebas de carga y no comparamos diferentes versiones de Magento. El objetivo principal de esta prueba es ver la velocidad de ciertas acciones en varias versiones de PHP.
- Para las versiones de Magento 2.x, estoy usando un conjunto de herramientas de rendimiento integrado para generar productos, clientes, pedidos, etc. Configuración de php bin/magento: rendimiento: generar accesorios proveedor/magento/magento2-base/setup/performance-toolkit/profiles/ce/medium.xml
- jMeter se ejecuta en modo sin cabeza en el mismo servidor donde está instalado Magento. Nos permite evitar la influencia de los retrasos de la red en los resultados de la prueba.
Leer más: Pruebas e investigación de velocidad de Amasty
- Comparación de rendimiento de Magento 1 vs Magento 2: resultados de la prueba de velocidad
- Comparación de caché de página completa: Amasty FPC vs Magento Enterprise FPC
- Investigación de Amasty: caché de página completa frente a caché Varnish
- Rendimiento de los temas populares de Magento: resultados de la prueba de velocidad
- Amasty Research: ¿Qué optimizaciones de servidor para Magento funcionan realmente?
Resultados de las pruebas: datos y diagramas
Los valores de la tabla son el tiempo medio de respuesta del servidor en milisegundos.
Diseccionando los resultados de la prueba
Además de los resultados que no necesitan ser comentados, aquí hay algunos pensamientos adicionales que me gustaría señalar:
- El uso de PHP 7.0.13 en lugar de PHP 5.6.27 agrega más del 50 % al rendimiento de Magento 2.x. En otras palabras, si tienes tu tienda Magento 2 en un servidor con PHP 5, estás perdiendo muchas oportunidades que te ofrece la mejor velocidad en el mundo del comercio electrónico.
- Un Magento 2.x limpio no se ejecutó en PHP 7.1.0, porque usa la extensión mcrypt, que se declaró obsoleta en PHP 7.1. El resultado es un error fatal . Funcionalidad en desuso: la función mcrypt_module_open() está en desuso en /var/www/vhosts/magento2ce.mage-php70.amasty.net/public_html/vendor/magento/framework/Encryption/Crypt.php en la línea 54 . Para evitar este error, tuve que editar app/bootstrap.php y configurar « error_reporting(0);» . También en PHP 7.1.0, después de la compilación php bin/magento setup:di:compile intent apareció un error: Error fatal de PHP: no se puede usar ‘Void’ como nombre de clase, ya que está reservado en /var/www/vhosts/magento2ce.mage-php70.amasty.net/public_html/vendor/magento/module-sales/Controller/Adminhtml/Order/ Invoice/Void.php en la línea 9. Para evitar este, compilé en PHP 7.0.13, pero el código compilado se ejecutó en PHP 7.1.0.
- Los resultados de velocidad/rendimiento de PHP 7.1.0 son casi los mismos si se comparan con PHP 7.0.13, con un poco de ida y vuelta en ambos lados. Como Magento 2.x todavía no es compatible oficialmente con PHP 7.1.x, no recomendamos esta combinación en un sitio de producción en este momento.
- El último Magento CE 1.x se ejecuta en PHP 7, pero no tuve la oportunidad de probar toda la funcionalidad, y tampoco hay garantía de que las extensiones de terceros funcionen también en PHP 7. Si decide utilizar este emparejamiento, pruebe los cambios en una versión provisional de su tienda Magento. Si algo salió mal con la configuración, use el historial de acciones de Magento en el futuro para ver el registro y restaurar los cambios recientes cuando sea necesario.
Si necesita ver los resultados detallados, le invitamos a descargar el PDF con todos los datos incluidos:
Descargar PDF de investigación gratis