Performance 由于php::session\u启动,CakePHP页面加载缓慢

Performance 由于php::session\u启动,CakePHP页面加载缓慢,performance,cakephp,xdebug,kcachegrind,Performance,Cakephp,Xdebug,Kcachegrind,我发现我的CakePHP应用程序中没有调用数据库的页面加载大约需要4秒钟,这太慢了 我尝试了以下几件事,但都没有成功: 重新启动计算机 重新安装Uniserver 将调试级别从2切换到0 从FileCache切换到APC缓存 我得到了一个XDebug分析器转储,并在KCachegrind中观察到最耗时的函数是php::session_start,它由\webroot\index.php调用。我还使用CakePHP调试工具包检查了性能,发现最耗时的项目是“核心处理(源自$\u服务器[“请求\u

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

我尝试了以下几件事,但都没有成功:

  • 重新启动计算机
  • 重新安装Uniserver
  • 将调试级别从2切换到0
  • 从FileCache切换到APC缓存
我得到了一个XDebug分析器转储,并在KCachegrind中观察到最耗时的函数是php::session_start,它由\webroot\index.php调用。我还使用CakePHP调试工具包检查了性能,发现最耗时的项目是“核心处理(源自$\u服务器[“请求\u时间”])”

我该怎么做才能更快地加载页面

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

  • ThinkPad T400
  • 英特尔酷睿2双核处理器
  • OCZ SSD
  • 4 GB内存
  • Windows 7 64位版本
  • CakePHP版本2.2.3
首先,我将php.ini的工作副本与Uniserver提供的php.ini的生产版本进行了比较,发现了以下主要差异:

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

然后,我做了一些前后比较。绿色单元格是检查会话配置并确保会话存储设置正确的值。例如,如果您使用的是数据库,请确保可以在快速网络或本地访问该数据库,并且用户具有所有必需的权限。如果会话驻留在文件系统中,请检查可用性和权限。最后,检查php的总体配置;这看起来不像是蛋糕问题

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

  • PHP错误级别(E_ALL、E_NOTICE、E_STRICT等)
  • $php\u errormsg日志记录
  • mysqlnd.collect设置(第二个)
  • 禁用Xdebug
然后,获得一个专用的生产服务器,这样就不必一直切换php.ini的副本


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

编辑core.php文件可以解决同样的问题

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

那是2比0

路径:app/config/core.php


不幸的是,我已经使用默认的CakePHP页面检查了会话存储,数据库在本地运行,CakePHP页面没有显示错误。您对我可以查看的资源有何建议,以了解有关调整php.ini以提高速度的更多信息?我怀疑这是一个调优问题。看起来好像是
session\u start
遇到了一种可以解决的情况,但需要一段时间才能解决。您可以设置一个快速的非CakePHP测试页面,只运行
session\u start
,以缩小问题范围。如果它持续存在,您知道这是一个PHP问题,您可以开始手动配置PHP会话处理;如果不是,那就是一个CakePHP问题。