我在Zend MVC中表现不佳而苦苦挣扎.
我设置了一个只有die()的控制器,我启用了xdebug,并根据我的请求提取了webgrind,告诉我:
789 different functions called in 2150 milliseconds (1 runs,137 shown)
我在确定究竟是什么花了这么长时间时遇到了问题:
[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
(上面几乎告诉我这是我的application.ini中定义的引导程序启动类 – 但我不知道哪些是慢的)
您应该能够扩展webgrind输出以找到较慢的函数调用.或者,您可以在分析会话期间使用
function trace feature的Xdebug来获取有关函数调用的更多信息.
一般来说,你应该尽可能使用缓存. Memcache比作为Zend_Cache后端的APC更快,但是你仍然需要安装APC扩展(即使在开发模式下)以获得极快的代码加速.我已经对它对Zend Framework Quick Start on my blog的影响进行了基准测试(该帖子是意大利语,但基准数据是英文的),结果非常令人印象深刻,主页的速度提高了3倍.
我已经为Zend_Application配置文件应用了缓存的想法(在您的示例中占用了一半的分析时间).我与Zend Framework项目负责人Matthew Weier O’Phinney讨论了here.我所做的是使用自定义的方法覆盖默认的Zend_Application _loadConfig
方法,该方法缓存已解析文件的结果.您可以找到实施此策略的课程here on github.