加速CakePHP
我一直是CakePHP的热心粉丝和用户,现在已经有2.5年了,但是大多数开发人员在框架中遇到的主要问题是缓慢,调度周期太长,无法用于生产环境。
我希望这个问题会激发人们分享他们的提示,技巧和黑客来加速CakePHP的性能。
我经常提到的博客post在这里, http: //www.pseudocoder.com/archives/8-ways-to-speed-up-cakephp-apps哪位有很棒的提示,但是一定要有更多!
所以,请随意分享您的想法,使这个更加灵活的优秀框架!
我认为这是一个很好的问题。 这里有几件事我可以加快蛋糕应用程序。
-
正如在链接文章的评论中提到的,削减
$uses
数组有一点帮助。 您可以通过关联关系访问关联的模型。 因此,如果城市和地址相关联,您可以通过$this->City->Address
访问地址,而不是在$uses
数组中包含这两个$this->City->Address
-
在Apache中,将代码从
.htaccess
移到主服务器的config / vhost /中,然后设置AllowOverride None
。 -
在负载平衡的环境中,将会话从数据库移至memcache。 Memcache很容易设置,蛋糕的DB会话类还有很多不足之处。 在高负载应用程序中,垃圾收集会杀死你,因为它每秒钟结束运行。 另外,这里有一个很棒的小脚本,它提供了有关你的memcache使用情况的统计信息(基于apc.php) http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/
-
正如Mark Story在8种方式文章的评论部分提到的那样,压缩资产是一个非常好的主意。 这是一个很好的脚本,可以同时使用js和css文件,这些文件可以用来replace与Cake一起捆绑的默认css.php文件。 http://www.milesj.me/blog/read/32/CSSJSAsset-Compression-In-CakePHP
-
如果由于某些原因,人们碰到了很多不存在的images / css / js,那么确保这些页面不会产生一个错误404会是有益的,因为它必须经过整个cake调度过程,一个会话等等。这就像改变这个一样简单:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
对此:
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^/(img|css|js)/(.*)$ RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
我只是写了一些更多的提示,以大幅加快cakephp应用程序与一些实际的代码: http : //www.dereuromark.de/2012/02/13/what-really-speeds-up-your-cakephp-app/
CakePHP和其他的东西,只是得到一个更强大的服务器,更多的GHz和内存。 价格每年都会变得更便宜。 虽然如果你在VPS上,我知道事情可能会很紧张。
有时候,新硬件比为了优化代码而付出代价更便宜。
这里还有一些更好的技巧,包括使用修改后的router::url
助手来提高性能以及一些常识:
http://www.chainfire.eu/articles/76/CakePHP_and_performance_for_noobs_/
对于cakephp 2中的Minify css和Js,您可以使用其中一个插件
https://github.com/Er-Kalpesh/CakePHP-Combinator-Plugin
这对于css和js的优化是最好的。