分析慢Zend Framework MVC设置

Jon*_*eig 7 php profiling zend-framework

我在Zend MVC中表现不佳而苦苦挣扎.

我设置了一个控制器,只有这个die(),我启用了xdebug,并根据我的请求提取了webgrind,告诉我:

789 different functions called in 2150 milliseconds (1 runs, 137 shown)
Run Code Online (Sandbox Code Playgroud)

我在确定究竟花了这么长时间的问题时遇到了问题:

[procedural]      {main}    O   1   9   2150
[class]       Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap  O   5   7   1203
[class]       Zend_Config_Ini->_processKey  O   622     451     1191
[class]       Zend_Config_Ini->_processSection  O   2   49  1023
[class]       Zend_Application_Bootstrap_BootstrapAbstract->_executeResource    O   16  11  1017
Run Code Online (Sandbox Code Playgroud)

(上面几乎告诉我这是我的application.ini中定义的引导程序启动类 - 但我不知道哪些是慢的)

有什么方法可以精确地确定代码中占用大量处理时间的步骤?

Fab*_*bio 7

您应该能够扩展webgrind输出以找到较慢的函数调用.或者,您可以在分析会话期间使用Xdebug的函数跟踪功能来获取有关函数调用的更多信息.

一般来说,你应该尽可能使用缓存.Memcache比APC更快作为Zend_Cache后端,但您仍然需要安装APC扩展(即使在开发模式下)以获得极佳的代码加速.我已经在我的博客上对Zend Framework Quick Start的影响进行了基准测试(该帖子是意大利语,但基准数据是英文的),结果非常令人印象深刻,主页加速3倍.

我也为Zend_Application配置文件应用了缓存的想法(在你的例子中占用了一半的分析时间).我在这里与Zend Framework项目负责人Matthew Weier O'Phinney 讨论过.我所做的是Zend_Application _loadConfig使用自定义的方法覆盖默认方法,该方法缓存已解析文件的结果.您可以在github上找到实现此策略的类.