php - 加速 CakePHP

标签 php performance cakephp

大约 2.5 年以来,我一直是 CakePHP 的忠实粉丝和用户,但大多数开发人员在框架方面的主要问题是它速度慢,并且调度周期太长,无法使其成为可行的解决方案用于生产环境。

我希望这个问题能激发人们分享他们的提示、技巧和技巧,以提高 CakePHP 的性能。

我最常引用的博文是pseudocoder的8 Ways to Speed Up the Performance of CakePHP Apps ,其中有很好的提示,但肯定还有更多!

因此,请随时分享您对使这个出色的框架更加灵活的想法!

最佳答案

我认为这是一个非常好的问题。以下是我为加速蛋糕应用程序所做的几件事。

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

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

    <
  3. 在负载平衡的环境中,将 session 从数据库移动到内存缓存。 Memcache 设置起来非常简单,而且 cake 的 DB session 类还有很多不足之处。在高负载应用程序中,垃圾收集会杀死你,因为它最终会每隔一秒左右运行一次。另外,这里有一个很棒的小脚本,可以为您提供有关内存缓存使用情况的统计信息(基于 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 错误可能是有益的,因为它必须经过整个蛋糕派发过程,生成 session 等。就像改变这个一样简单:

    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]
    

关于php - 加速 CakePHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2676819/

相关文章:

php - 连接 2 个数据库表以获得总和值输出

html - 1px 的 border-radius 是否比 10px 的 border-radius 性能更好?

performance - 链式哈希表中成功搜索的平均成本

cakephp - Controller 应该避免 CakePHP 中的私有(private)函数吗?

cakephp - CakePHP 中的元标记

php - 给定一封电子邮件作为原始文本,我如何使用 PHP 发送它?

php - 将通过 POST Http 请求(okhttp 3.3.1)上传的多个文件移动到另一个目录

forms - 如何删除或更改 CakePHP 中输​​入字段的标签?

php - 在文本框中保存 ' to database, i get\' 时

performance - 为什么 fp 除法运算比倒数运算加乘法运算慢