本文介绍了优化 Zend 框架的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从使用 Zend 框架的应用程序中获得尽可能多的性能.
I'm trying to get as much performance as I can out of my application, which uses the Zend Framework.
我正在考虑使用启用 APC 的 Zend Server.不过,我需要先了解一些事情.
I'm considering using the Zend Server, with APC enabled. However, I need to know a few things first.
使用 Zend Server + Zend Framework 有什么好处,还是我应该使用任何普通系统来托管它?
Is there any benefit of using Zend Server + Zend Framework, or should I just use any ordinary system to host this?
沙米尔
推荐答案
我对更快 ZF 的提示(从上到下尝试):
My tips for faster ZF (try from top to bottom):
- zend 路径优先
- 接下来的模型
- 最后休息
- 我怎么强调都不过分
- 收益约 50%
- 即使不需要其他缓存也应该被缓存
- 我们的一个应用程序在 Oracle 服务器上的性能提高了约 30% ;)
- 创建访问模型的视图助手
- 或仅传递来自模型的数据并使用视图助手对其进行格式化
- 自 ZF1.11 起
- 最好是去掉 require_once 调用
- ZF 中有很多路径栈
- 表单元素
- 查看助手
- 动作助手
- 从 Zend 的类中去除 require_once 以支持自动加载 使用 find &sed
- 没有创建新的视图实例
- 您需要在渲染视图范围之外,在主视图内设置变量!
- 您也可以将 partialLoop() 替换为 foreach + render()
- 需要大量工作且很少更改的小块(如动态菜单)
- 使用分析器寻找容易实现的目标
- 你认为很慢的事情可能并没有那么慢
- small chunks that require lot of work and change seldomly (like dynamic menus)
- use profiler to find low-hanging fruit
- what you think is slow may not really be so slow
- 参见手册 -
Zend_Locale::setCache(), Zend_Currency::setCache(), Zend_Db_Table::setDefaultMetadataCache(), configs...
- 除非 100% 需要,否则不要使用它们 - 例如对于复杂的数据输出,但请注意它们造成的性能损失
- 它们创建了全新的调度循环并且是性能杀手!
- 它将包含的类合并到一个长文件中以最小化统计调用
- 如果来自 GitHub
- 它来自 EDP 的 ZF2 版本
- 但要注意 - 它尚未在生产中进行测试,请谨慎使用
- 我在慢速 HDD 和其中的所有 ZF 类上有损失
- 尝试使用去除空白函数
- 这对于非常大的文件很有意义 - HDD 始终是瓶颈
- 即使是微优化有时也能正常工作
- 带有所有 ZF 类路径的类映射是巨大的,当具有干"操作码缓存和硬盘压力大.
任何操作码缓存当然是必须的;)(APC、ZendOptimizer 等)
Any opcode cache is of course a must have ;) (APC, ZendOptimizer, etc.)
这篇关于优化 Zend 框架的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!