2010-04-20 19 views
35

He sido un entusiasta admirador y usuario de CakePHP desde hace aproximadamente 2.5 años, pero la principal pesadilla que la mayoría de los desarrolladores compañeros nivelan en el marco es que es lenta, y el ciclo de envío tarda demasiado en hacerlo una solución viable para entornos de producción.Acelerando CakePHP

Espero que esta pregunta inspire a la gente a compartir sus consejos, trucos y trucos para acelerar el rendimiento de CakePHP.

La publicación del blog a la que más a menudo me refiero está aquí, http://www.pseudocoder.com/archives/8-ways-to-speed-up-cakephp-apps ¡Lo cual tiene buenos consejos, pero debe haber más por ahí!

¡Por favor, siéntete libre de compartir tus ideas sobre cómo hacer que este excelente marco sea mucho más ágil!

+0

El enlace a la entrada del blog que mencionas es abajo! ¿Alguien puede publicar un enlace actualizado? Ya busqué en Google sin suerte – hectorg87

+1

¡Alguien tiene que decirle a Matt! En lugar de eso, aquí está la versión del archivo web. http://web.archive.org/web/20120423115453/http://www.pseudocoder.com/archives/8-ways-to-speed-up-cakephp-apps –

+1

Vale la pena señalar que PHP 5.5.6 tiene un significado significativo aumento de rendimiento para pastel ya que el array_merge() ha sido mejorado. –

Respuesta

28

Creo que esta es una muy buena pregunta. Aquí hay un par de cosas que hago para acelerar las aplicaciones de pasteles.

  1. Como se mencionó en los comentarios del artículo enlazado, la reducción en la matriz $uses ayuda un poco. Puede acceder a los modelos asociados visitando su asociación. Así que si la ciudad y la Dirección cuando asociado, que podrían acceder a la dirección de $this->City->Address en lugar de incluir tanto en la gama $uses

  2. en Apache, mover el código de su .htaccess en la configuración principal del servidor/host virtual/lo que sea y establece AllowOverride None.

  3. En un entorno con equilibrio de carga, mueva las sesiones de la base de datos a Memcache. Memcache es fácil de configurar, y la clase de sesión DB de la torta deja mucho que desear. En la aplicación de carga alta, la recolección de basura te matará, ya que termina funcionando cada segundo más o menos. Además, aquí hay un pequeño gran guión que proporciona estadísticas sobre su uso de Memcache (en base de apc.php) http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/

  4. Como Mark historia menciona en la sección de comentarios del artículo 8 maneras, la compresión de sus activos es un muy buen idea. Aquí hay un buen script que minimiza los archivos js y css, que se pueden usar para reemplazar el css.php predeterminado que viene incluido con cake. http://www.milesj.me/blog/read/32/CSSJSAsset-Compression-In-CakePHP

  5. Si por alguna razón la gente golpeó un montón de imágenes/css/js que no existe más, podría ser beneficioso para asegurarse de que esas páginas no se generará un error de la torta 404, ya que tiene que pasar por todo el proceso de envío de pasteles, genera una sesión, etc.Es tan simple como cambiar esto:

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L] 
    

    a esto:

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !^/(img|css|js)/(.*)$ 
    RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L] 
    
+0

grrr. No estoy muy seguro de por qué mi formateo se puso tan desordenado. – JoeyP

1

Tanto para CakePHP como para otras cosas, solo obtenga un servidor más potente, más GHz y RAM. Los precios se abaratan cada año. Aunque si estás en un VPS, entiendo que las cosas pueden ser difíciles.

Y a veces el nuevo hardware es más barato que pagar a alguien para optimizar el código ...

+0

Es exactamente por eso que la mayoría de nosotros somos lo suficientemente "inteligentes" para usar CakePHP. Use un marco lento combinado con hardware kickass y ni siquiera importará. Pero el momento de desarrollar las cosas, cada hora cuesta mucho dinero. Ahí es donde entra en juego el Desarrollo Rápido. Por lo tanto, a menudo veo que la gente optimiza en el extremo equivocado. La respuesta correcta sigue siendo la ya seleccionada, ya que la pregunta probablemente aún era sobre cómo optimizar el rendimiento del código (y usar el mismo hardware). – mark