Sé que puedes minimizar PHP, pero me pregunto si tiene algún sentido. PHP es un lenguaje interpretado, por lo que se ejecutará un poco más lento que un lenguaje compilado. Mi pregunta es: ¿verían los clientes una mejora de la velocidad visible en la carga de la página y tal si tuviera que minificar mi PHP?
Además, ¿hay alguna forma de compilar PHP o algo similar?
Respuestas:
PHP se compila en un código de bytes, que luego se interpreta sobre algo parecido a una máquina virtual. Muchos otros lenguajes de secuencias de comandos siguen el mismo proceso general, incluidos Perl y Ruby. No es realmente un lenguaje interpretado tradicional como, digamos, BÁSICO.
No habría un aumento de velocidad efectivo si intentara "minificar" la fuente. Obtendría un aumento importante al usar una caché de código de bytes como APC .
Facebook introdujo un compilador llamado HipHop que transforma la fuente PHP en código C ++. Rasmus Lerdorf, uno de los grandes tipos de PHP hizo una presentación para Digg a principios de este año que cubre las mejoras de rendimiento dadas por HipHop. En resumen, no es mucho más rápido que optimizar el código y usar una caché de código de bytes. HipHop es una exageración para la mayoría de los usuarios.
Facebook también presentó recientemente HHVM , una nueva máquina virtual basada en su trabajo en la creación de HipHop. Todavía es bastante nuevo y no está claro si proporcionará un impulso importante al rendimiento para el público en general.
Solo para asegurarse de que se indique expresamente, lea esa presentación en su totalidad. Señala numerosas formas de comparar y perfilar el código e identificar cuellos de botella utilizando herramientas como xdebug y xhprof , también de Facebook.
fuente
Olvídese de la idea de minificar PHP en favor de usar una caché de código de operación, como
PHP Accelerator
, oAPC
.O algo más como
memcached
fuente
Con algo de reescritura (nombres de variable más cortos) podría ahorrar algunos bytes de memoria, pero eso también rara vez es significativo.
Sin embargo, diseño algunas de mis aplicaciones de una manera que permite concatenar scripts de inclusión juntos. Con
php -w
él se puede compactar significativamente, agregando un poco de ganancia de velocidad para el inicio del script. Sin embargo, en un servidor habilitado para código de operación, esto solo guarda algunas verificaciones de tiempo de archivo.fuente
Esta es menos una respuesta que un anuncio. He estado trabajando en una extensión de PHP que traduce los códigos de operación Zend para que se ejecuten en una máquina virtual con escritura estática. No acelera el código PHP arbitrario. Le permite escribir código que se ejecuta mucho más rápido de lo que permite PHP normal. La clave aquí es la escritura estática. En una CPU moderna, un lenguaje dinámico se come la penalización por errores de predicción de rama a izquierda y derecha. El hecho de que las matrices PHP son tablas hash también impone un alto costo: muchos errores de predicción de las ramas, uso ineficiente de la memoria caché, precarga de memoria deficiente y ninguna optimización SIMD en absoluto. La predicción errónea de rama y los errores de caché en particular son el talón de Aquiles para los procesadores actuales. Mi pequeña VM evita esos problemas utilizando tipos estáticos y una matriz C en lugar de una tabla hash. El resultado termina funcionando aproximadamente diez veces más rápido. Esto está utilizando la interpretación de código de bytes. La extensión puede compilar opcionalmente una función a través de gcc. En ese caso, obtienes de dos a cinco veces más velocidad.
Aquí está el enlace para todos los interesados:
https://github.com/chung-leong/qb/wiki
Nuevamente, la extensión no es un acelerador PHP general. Tienes que escribir un código específico para ello.
fuente
Sí, hay un punto (no técnico).
Su proveedor de alojamiento puede espiar su código en su servidor. Si lo minimizas y lo feas, es más difícil para los espías robar tus ideas.
Una razón para minificar y fealizar php puede ser la protección contra espías. Creo que el código feo debería ser un paso en una implementación automática.
fuente
Hay compiladores de PHP ... consulte esta pregunta anterior para obtener una lista; pero (a menos que tenga el tamaño de Facebook o esté apuntando su aplicación para que se ejecute en el lado del cliente) generalmente son muchos más problemas de los que valen
El almacenamiento en caché de código de operación simple le dará más beneficios por el esfuerzo involucrado. O perfile tu código para identificar los cuellos de botella y luego optimizarlo.
fuente
No es necesario minimizar PHP. Para obtener un mejor rendimiento, instale un caché de Opcode; pero la solución ideal sería actualizar su PHP a la versión 5.5 o superior porque las versiones más nuevas tienen un caché de código de operación por defecto llamado Zend Optimiser que está funcionando mejor que los otros http://massivescale.blogspot.com/2013/06 /php-55-zend-optimiser-opcache-vs-xcache.html .
fuente