【问题标题】:Zend Config Performance OptimizationZend 配置性能优化
【发布时间】:2011-10-26 21:56:00
【问题描述】:

我正在优化基于 Zend Framework 的应用程序,并且我确信使用基于 ini 的配置会降低整体性能,因为站点需要在每个页面请求上读取和解析 ini。现在我有两个想法来处理这种情况

  • 缓存ini文件或缓存zend_config对象并从缓存中使用
  • 或者将基于ini的配置转换成php

我不确定哪种方法可以提供更好的性能。如果需要,我将来会修改自己的配置,并且我不需要将配置写回 ini 的功能。因此,请建议哪种方法更适合极限性能。在缓存方法中它只是反序列化一个已经存在的对象,而在 php 数组中它从头开始构造对象。

【问题讨论】:

    标签: performance zend-framework optimization zend-cache zend-config


    【解决方案1】:

    缓存!

    解释:

    如果您将其转换为 php 对象,您只需交换解析器,请注意:PHP 有许多构造,构建 AST 对这种语言来说甚至都不是一件简单的事情。

    使用缓存,您的数据可能会存储在内存中,因此您的硬盘不必执行任何 I/O 来获取每个请求的设置对象。即使是解析或反序列化也可以通过这种方式更快地处理,记住这也将由 PHP 解释器完成。

    最后的提示:

    如果您担心您的 ini 文件解析时间过长,也许您可​​以分割您的配置文件,而不是总是加载所有设置?

    【讨论】:

    • 如何为 php 使用一些操作码缓存或加速器。我认为他们还会缓存 php 文件内容。在这种情况下,哪种方法可以更快地反序列化已经存在的对象或使用 php 数组从头开始构造对象。
    • 序列化对象是由魔术方法实现的,ZendEngine 必须为它们执行查找。因此,这比通过数组构造的性能低。操作码缓存是一个很好的选择,但请记住,在缓存数据的格式中,与存储数据的位置相比,它的重要性要小得多!内存几乎总是会超过 HDD 存储的缓存(除非您的工具中有严重的错误;))。祝你好运!
    【解决方案2】:

    缓存ini文件或缓存zend_config对象并从缓存中使用

    这是正确的选择。

    检查这个application.ini cache

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-17
      • 2016-05-14
      • 2011-10-17
      • 2014-01-08
      • 1970-01-01
      相关资源
      最近更新 更多