2

我发现我的 CakePHP 应用程序中不调用数据库的页面加载大约需要 4 秒,这太慢了。

我尝试了以下方法无济于事:

  • 重新启动计算机
  • 重新安装 Uniserver
  • 将调试级别从 2 切换到 0
  • 从 FileCache 切换到 APC 缓存

我得到了一个 XDebug 分析器转储,并在 KCachegrind 中观察到最耗时的函数是 php::session_start,它是由 \webroot\index.php 调用的。我还使用 CakePHP Debug Kit 检查了性能,发现最耗时的项目是“Core Processing (Derived from $_SERVER["REQUEST_TIME"])”。

我该怎么做才能让我的页面加载得更快?

如果我的硬件是相关的,我已经描述了下面的操作环境:

  • ThinkPad T400
  • 英特尔酷睿 2 双核处理器
  • OCZ 固态硬盘
  • 4 GB 内存
  • Windows 7 64 位版本
  • CakePHP 2.2.3 版

作为起点,我将我的 php.ini 工作副本与 Uniserver 提供的 php.ini 生产版本进行了比较,发现了以下主要差异:

  • PHP 错误级别(E_ALL、E_NOTICE、E_STRICT 等)
  • $php_errormsg 日志记录
  • mysqlnd.collect 设置(其中 2 个)
  • 禁用 Xdebug

然后,我做了一些前后对比。绿色单元格是 <= 1 秒的值,这是人类感知事物“相当快”的极限。我意识到实际上,必须 <= 0.1 秒才能“即时”,但这似乎有点不切实际。

显示 CakePHP 页面所需的处理时间比较

(要查看全尺寸图像,请访问 Windows SkyDrive,网址为http://sdrv.ms/YomWdO。)

我尝试在 php.ini 的“After”版本下运行时使用网站应用程序,情况并不糟糕,但是当我启动大多数页面时,我仍然觉得我遇到了困难,尤其是当我可以立即启动一些页面时.

4

3 回答 3

1

检查您的会话配置并确保您的会话存储设置正确。例如,如果您正在使用数据库,请确保它可以在快速网络或本地访问,并且用户拥有所有必需的权限。如果会话驻留在文件系统中,请检查可用性和权限。最后,检查你的 php 配置;这看起来不像是蛋糕问题。

于 2012-11-29T22:47:10.130 回答
0

解决方案是更改以下设置:

  • PHP 错误级别(E_ALL、E_NOTICE、E_STRICT 等)
  • $php_errormsg 日志记录
  • mysqlnd.collect 设置(第二个)
  • 禁用 Xdebug

然后,获得一个专用的生产服务器,这样您就不必不断切换 php.ini 的副本。

最后,如果这还不够快,而且这只是一个个人项目(尽管它可能是一个重要的个人项目),那就放弃并继续生活。

于 2013-01-23T23:22:43.987 回答
-1

通过编辑文件 core.php 解决了同样的问题

更改Configure::write('debug', 2);Configure::write('debug', 0);

即 2 比 0

路径:app/config/core.php

于 2014-11-04T12:07:17.473 回答