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中定义的引导程序启动类 - 但我不知道哪些是慢的)
有什么方法可以精确地确定代码中占用大量处理时间的步骤?
您应该能够扩展webgrind输出以找到较慢的函数调用.或者,您可以在分析会话期间使用Xdebug的函数跟踪功能来获取有关函数调用的更多信息.
一般来说,你应该尽可能使用缓存.Memcache比APC更快作为Zend_Cache后端,但您仍然需要安装APC扩展(即使在开发模式下)以获得极佳的代码加速.我已经在我的博客上对Zend Framework Quick Start的影响进行了基准测试(该帖子是意大利语,但基准数据是英文的),结果非常令人印象深刻,主页加速3倍.
我也为Zend_Application配置文件应用了缓存的想法(在你的例子中占用了一半的分析时间).我在这里与Zend Framework项目负责人Matthew Weier O'Phinney 讨论过.我所做的是Zend_Application _loadConfig使用自定义的方法覆盖默认方法,该方法缓存已解析文件的结果.您可以在github上找到实现此策略的类.