加速CakePHP

Dav*_*ell 38 php performance cakephp

我已经成为CakePHP的忠实粉丝和用户已有2.5年了,但是大多数开发人员在框架中处理的主要问题是它的速度很慢,而且调度周期太长,无法使其成为生产环境的可行解决方案.

我希望这个问题能激发人们分享他们提高CakePHP性能的技巧,窍门和技巧.

我经常提到的博客文章是伪编码器提高CakePHP应用程序性能8种方法,它有很多提示,但必须有更多的提示!

所以请随意分享您对这个更灵活的优秀框架的想法!

Joe*_*eyP 31

我认为这是一个非常好的问题.以下是我为加快蛋糕应用程序所做的一些事情.

  1. 正如链接文章的评论中所提到的,减少$uses阵列有点帮助.您可以通过他们的associationg访问相关模型.因此,如果City和Address相关联,则可以通过$this->City->Address而不是在$uses数组中包含两者来访问地址

  2. 在apache中,将代码从您.htaccess的主服务器config/vhost /中移动并设置AllowOverride None.

  3. 在负载平衡环境中,将会话从DB移动到内存缓存.Memcache很容易设置,而蛋糕的DB会话类还有很多不足之处.在高负载应用程序中,垃圾收集会杀死你,因为它每秒钟都会运行一次.此外,这是一个很棒的小脚本,可以为您提供有关内存使用情况的统计信息(基于apc.php) http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/

  4. 正如Mark Story在8篇文章的评论部分中提到的那样,压缩资产是一个非常好的主意.这是一个很好的脚本,可以缩小js和css文件,可以用来替换与cake捆绑在一起的默认css.php. http://www.milesj.me/blog/read/32/CSSJSAsset-Compression-In-CakePHP

  5. 如果由于某种原因人们再次点击不再存在的图像/ css/js,那么确保这些页面不会产生蛋糕404错误可能是有益的,因为它必须经历整个蛋糕调度过程,生成一个会话等.这就像改变这个一样简单:

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

    对此:

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


mar*_*ark 8

我刚刚写了一些关于大幅加速cakephp应用程序的技巧,附带一些实用代码:http: //www.dereuromark.de/2012/02/13/what-really-speeds-up-your-cakephp-app/