【发布时间】:2011-11-18 19:55:55
【问题描述】:
我使用 ZF 开发了应用程序。应用程序很小,但功能很多。
我使用 Zend_Application(已经在构造函数中使用自动加载器)、Zend_Layout、Zend_view、Zend_form 等。我当前的问题是,页面加载非常慢,而且在带有 XAMP 的 localhost 中也是如此。
我已启用 xdebug 来调查问题,在“tmp”文件夹中获得了一个 cachegrind 文件,并尝试使用 WinCachegrind 软件查看它。在那里,我可以看到为每个请求或页面加载运行的许多进程和函数。
另外,我已经为 firefox 安装了 YSlow 插件,并在几秒钟内观察了页面加载速度...我将速度与 ZF 和非 ZF 应用程序进行了比较。从比较来看,非 zf 应用程序的页面加载时间不到 1 秒,而 ZF 应用程序的页面加载时间至少为 6-7 秒。差别太大了。
应用程序中发生的主要事情是:
1) 每个请求都会发生数据库连接。
2) 我没有明确地将视图添加到布局中,ZF 只是根据动作名称自动将其附加到 layout.phtml。
3) 一些窗口的表单带有几个下拉框,可以从数据库中获取数据。
4) 在为每个请求从 DB 加载权限之前,已经隐含了带有 ACL 的菜单,但现在我已经对其进行了优化,以便它仅在登录期间和其余时间从Zend_Registry。
我想附上 cachegrind 文件,以便有人可以看到后台发生的事情,但我在这里看不到附加选项。
请有人帮我找到解决方案。任何形式的帮助都非常感谢。非常感谢
【问题讨论】:
-
您知道执行数据库查询花费了多少加载时间吗?看看 DB 分析器 - framework.zend.com/manual/en/zend.db.profiler.html
-
你能在某处链接到 cachegrind 文件吗?甚至是一个屏幕截图,给人们一个概览。否则我们无法判断真正的问题是什么。
-
是的,当然..我会把它上传到某个地方...然后会给你链接..
-
@tim 我也触发了 zend_db_profiler 结果到萤火虫......有占位符的查询和页面的其他必需查询......总共不到 1 毫秒......对于大多数页面...
-
@Ryan 这是 cachegrind 文件的链接southkeralaprovinceocd.com/cachegrind.out.2904
标签: performance zend-framework loading