Pregunta

¿Alguien tiene experiencia trabajando con aceleradores PHP como MMCache o Acelerador Zend?Me gustaría saber si el uso de cualquiera de estos hace que PHP sea comparable a más rápido tecnologías web.Además, ¿existen compensaciones por su uso?

¿Fue útil?

Solución

Tenga en cuenta que Zend Optimizer y MMCache (o aplicaciones similares) son cosas totalmente diferentes.Mientras Zend Optimizer intenta optimizar el código de operación del programa, MMCache almacenará en caché los scripts en la memoria y reutilizará el código precompilado.

Hice algunos puntos de referencia hace algún tiempo y puedes encontrar el resultados en mi blog (aunque en alemán).Los resultados básicos:

Zend Optimizer por sí solo no ayudó en absoluto.En realidad, mis scripts eran más lentos que sin el optimizador.

Cuando se trata de cachés:* más rápido: eAccelerator * Xcaché * APC

Y:¡QUIERES instalar un caché de código de operación!

Por ejemplo:texto alternativo http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

Este es el tiempo que tardó en llamar a la página de inicio de WordPress 10.000 veces.

Editar: Por cierto, eAccelerator contiene un optimizador.

Otros consejos

MMCache ha quedado obsoleto.recomiendo cualquiera http://pecl.php.net/package/APC o http://xcache.lighthttpd.net/, los cuales también le brindan almacenamiento variable (como Memcache).

Ambos son interesantes y aumentarán la velocidad ya que compilan el código fuente en una representación binaria que luego es ejecutada por el motor PHP.

Cualquier sitio web enorme que se ejecute con PHP (Facebook, por ejemplo) ejecuta algún tipo de sistema de caché de código de operación como MMCache.

El problema es que no son muy fáciles de configurar dependiendo de tu sistema.

Dependiendo de la cantidad de código PHP que se ejecute realmente y del tiempo que demore esa ejecución, pueden ser una gran ganancia.Ciertamente no te hará daño, pero la ganancia que veas dependerá en gran medida de dónde inviertas tu tiempo actualmente.

Por cierto, mmcache se ha incluido en un proyecto diferente ahora, olvidé el nombre, pero Google te lo dirá.

Utilizo APC en mis servidores de producción y funciona bastante bien desde el primer momento.Compílelo y agréguelo a PHP y no quedarán muchos ajustes por hacer.Lo reviso de vez en cuando solo para revisar las estadísticas, pero como uso mucho MVC, todos los archivos principales (enrutadores, controladores, etc.) rara vez cambian en el día a día, por lo que el código permanece compilado y se ejecuta de manera bastante eficiente. .

Actualmente usamos apc, es gratuito y era simplemente un simple plug and play en nuestros servidores en vivo.Proporcionó un enorme aumento en el rendimiento de nuestro sitio, especialmente a medida que aumentó el tamaño del proyecto.También tengo apc.stat deshabilitado para que no verifique si el código se ha actualizado, por lo que cada vez que necesitamos actualizar el código en el sitio en vivo reiniciamos Apache.

Utilizo APC y puedo dar fe de que puede reducir drásticamente la carga de CPU y E/S en un servidor de aplicaciones si mantiene una alta tasa de aciertos de caché.No solo le evita tener que compilar, sino que también le evita tener que leer los archivos php del disco.(es decir.los códigos de bytes se sirven directamente desde la memoria principal, por lo que es súper rápido). Reduce la velocidad para representar una sola página y aumenta las solicitudes por segundo que su servidor puede manejar.

Si usas RedHat o CentOS, instalar APC es súper sencillo:

yum install php-devel httpd-devel php-pear
pecl install apc 
echo "extension=apc.so" > /etc/php.d/apc.ini
# if you're using SELinux:
chcon "system_u:object_r:textrel_shlib_t" /usr/lib/php/modules/apc.so
/etc/init.d/httpd restart

Preguntaste sobre las desventajas.El único inconveniente es que requiere algo de memoria.El valor predeterminado en APC es 30 MB, pero se puede ajustar y el costo de un poco de memoria se amortiza con creces con el aumento de velocidad y tasa de respuesta.

Las pruebas de BlaM incluyeron todas las llamadas a bases de datos realizadas por WordPress.Cuando realice menos llamadas a la base de datos, verá que la ganancia de rendimiento de las cachés de código de operación será aún más espectacular.

Usé Zend Accelerator hace un tiempo (2004-ish).Ciertamente dio algunas mejoras significativas en el rendimiento del código con el que podía trabajar, pero desafortunadamente el sistema que estaba usando estaba diseñado para cargar código dinámicamente y luego evaluarlo, con lo que Zend Accelerator no podía hacer mucho en ese momento (y yo Supongo que todavía no puedo).

En el lado negativo, ciertamente vimos algunos problemas de almacenamiento en caché (donde el código cambiaría, pero la versión compilada se sincronizaría con el cambio por una razón u otra).Me imagino que esos problemas probablemente ya se hayan solucionado.

De todos modos, no tengo números de comparación concretos y ciertamente no escribí el mismo sistema en diferentes entornos para comparar, pero para la gran mayoría de los sistemas, PHP no va a acabar con el rendimiento.

¿Has revisado Phalanger?Compila código PHP a .NET.Aquí están algunos puntos de referencia lo que demuestra que puede mejorar drásticamente el rendimiento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top