首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原则2极端优化

原则2极端优化
EN

Stack Overflow用户
提问于 2012-05-10 11:47:27
回答 1查看 3.8K关注 0票数 7

我目前正在使用ZendFramework1.11.11和Doctrine2.2构建一个web应用程序。我寻找了很多最佳的方法和方法来优化所使用的框架。

在我搜索Zend优化的过程中,我偶然发现了这篇文章:优化Zend框架

有趣的是,它提到了从框架本身的使用中出现的很少的优化技术,手册本身也没有涉及这些优化技术,例如:

  • 禁用viewRenderer并照顾视图呈现。

现在,我正在寻找类似的技术,这些技术可以应用于所提到的在手册里以外的Doctrine 2。

Note

我知道很多人都会提到分析查询、缓存和查找应用程序的瓶颈,但这并不是在寻找:)我正在寻找在使用Doctrine 2期间发现的实用增强。

(谢谢;)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-10 12:04:09

嗯,优化和黑客的原则2将不是一个容易的任务。我只能建议你遵循官方的“最佳做法”:

  • 使用查询缓存
  • 使用元数据缓存
  • 预生成代理
  • 避免侦听器(或按事件类型合并它们(刷新、更新),这将避免查找时间和订阅事件的循环)
  • 在可能的时候使用延迟加载。
  • 确保你的关系或继承不会搞砸。

(注意,我没有提到结果缓存,应该是而不是是优化应用程序的一种方法)

从我的使用来看,我必须优化的最重要的部分不是Doctrine本身(虽然需要对核心进行优化),而是生成的查询,与往常一样,我对查询和优化的索引进行了EXPLAIN编辑。

原则2可能占用很高的内存,因此同时加载许多实体可能会减慢应用程序的速度,您可能会发现了解clear()detach()iterate()方法很有用。

尽管Doctrine 2有时会很慢,但我主要注意到我能够在其他地方优化应用程序,包括Zend或PHP本身。

比方说,Doctrine 2需要100‘s,Zend Framework需要300’s,总共需要450‘s (I/O、PHP内部函数等)。

如果您可以轻松地除以Zend所需的时间,优化Doctrine 2以获得10%的效果不会显着地提高应用程序的速度。再想两遍。

以下是一些建议:

  • 创建您自己的视图,而不是使用(避免使用助手查找)
  • 缓存Zend_Config对象(负载很重)
  • 尽可能避免Regex路由(ZF路由是一个大瓶颈)
  • 使用ClassMap自动加载程序而不是本机Zend_Loader_Autoloader

有大量的优化工作要做,有些有真正的影响,而另一些则没有。

确保通过分析您的应用程序找到它们,一个简单的跨平台就是使用网磨

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10533325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档