¿Cuándo debo usar el compilador de Magento?

44

A menudo veo personas que mencionan que usan la función de compilación de Magento.

Nunca lo hago y me pregunto qué casos debería usar y cuánto aumento de rendimiento tiene.

[DESCARGO DE RESPONSABILIDAD]: recientemente recibí una sugerencia de edición sobre esto. Esta pregunta no se trata de la compilación de magento2, ni siquiera se trata de magento2.

Flyingmana
fuente
1
Vea mis puntos de referencia con el compilador: byte.nl/blog/should-i-use-the-magento-compiler
Willem
1
falta la configuración de apc, ahora también tenemos el módulo opcache en las versiones actuales y ya no hay una versión de php compatible que funcione con apc. Cambios de software, también lo hacen las soluciones y soluciones alternativas.
Flyingmana

Respuestas:

43

[AVISO LEGAL] Esta respuesta solo está destinada al compilador en Magento 1, el compilador en Magento 2 tiene un propósito / efecto completamente diferente

Nunca deberías usarlo.

Porque PHP ha desarrollado varias mecánicas para mejorar las aplicaciones que contienen muchos archivos.

Medios: el php opCache en la versión php actual ofrece mejores mejoras de rendimiento, si está configurado correctamente. Por ejemplo, para usar un límite lo suficientemente alto para los archivos en caché. Además, opCache tiene mejoras para las funciones de acceso al sistema de archivos que funcionan en un nivel más profundo que aoe_classpathcache y mejora aún más el rendimiento.

Al final tenemos una carga automática que no necesita más de unos pocos ms sin el compilador. Incluso hay casos en los que el compilador dañó el rendimiento. Sin mencionar los locos problemas que consumen mucho tiempo para depurar aplicaciones usando el compilador.

Además, opCache no solo mejora la carga automática, las optimizaciones de la función del sistema de archivos incluso mejoran la carga de plantillas y archivos de diseño.

http://php.net/manual/en/opcache.configuration.php

Flyingmana
fuente
2
Entonces, ¿sugiere deshabilitar la compilación, borrar archivos compilados y usar opCache en su lugar?
perissf
1
si lo resumen, sí
Flyingmana
3
El compilador es un kludge más útil con las versiones 1.4.1.1, 1.4.2.0 y posiblemente 1.5.1.0. Comenzando con 1.5.1.0 hacia adelante, la optimización del código comenzó a hacerla menos efectiva. En algún lugar alrededor de 1.6 o 1.7, alguien hizo pruebas A / B y descubrió que en realidad puede ralentizar el sistema bajo ciertas configuraciones de servidor.
Fiasco Labs
3
Dos configuraciones para que el intérprete PHP lo ayude con los miles de millones de archivos que se pueden hacer si tiene acceso al sistema o puede hacer que su proveedor de hosting realice el cambio por usted -> realpath_cache_size=64ky realpath_cache_ttl=3600. 64k parece ser el punto óptimo, la gente ha recomendado más, pero las pruebas de rendimiento muestran que es un desperdicio de memoria.
Fiasco Labs
2
@FiascoLabs ¿Tiene un enlace / fuente para sus cifras de "pruebas A / B"? Sería bueno verlo.
Aram Papazian
11

"¿Cuándo debo usar el compilador de Magento?"

Si por alguna razón su sistema no tiene un Acelerador PHP instalado (poco probable pero posible)

Si está ejecutando una versión muy antigua de magento (realmente no debería estarlo)

¿Por qué deberías mantenerlo deshabilitado?

Estoy totalmente de acuerdo con el comentario anterior de Fiasco Labs. Si bien no proporcionó su número de versión de magento, esto es cierto para todas las versiones de magento (CE) anteriores a 1.6.1, si habilita el compilador en un sistema que ya tiene un acelerador php (como PHP-APC, etc.) en toda su tienda , desde las páginas de administración hasta la salida de un cliente será mucho más lenta, lo que es peor, muchos de los complementos / modificaciones que encontrará en la conexión de magento no funcionarán correctamente con el compilador activo.

En resumen, en 2014 nunca hay una buena razón para habilitar el compilador.

Alistair
fuente