我发现我的 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 秒才能“即时”,但这似乎有点不切实际。
(要查看全尺寸图像,请访问 Windows SkyDrive,网址为http://sdrv.ms/YomWdO。)
我尝试在 php.ini 的“After”版本下运行时使用网站应用程序,情况并不糟糕,但是当我启动大多数页面时,我仍然觉得我遇到了困难,尤其是当我可以立即启动一些页面时.