Performance Zend配置性能优化

Performance Zend配置性能优化,performance,zend-framework,optimization,zend-cache,zend-config,Performance,Zend Framework,Optimization,Zend Cache,Zend Config,我正在优化基于Zend Framework的应用程序,我确信使用基于ini的配置会降低总体性能,因为站点需要在每个页面请求上读取和解析ini。现在我有两个想法来处理这种情况 缓存ini文件或缓存zend_config对象并从缓存中使用它 或者将基于ini的配置转换为php 我不确定哪种方法能提供更好的性能。如果需要的话,我将自己修改配置,我不需要将配置写回ini的功能。因此,请建议哪种方法更适合极端性能。在缓存方法中,它只是反序列化一个已经存在的对象,而在php数组中,它从头开始构造对象。缓

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

  • 缓存ini文件或缓存zend_config对象并从缓存中使用它
  • 或者将基于ini的配置转换为php
我不确定哪种方法能提供更好的性能。如果需要的话,我将自己修改配置,我不需要将配置写回ini的功能。因此,请建议哪种方法更适合极端性能。在缓存方法中,它只是反序列化一个已经存在的对象,而在php数组中,它从头开始构造对象。

缓存

说明:

如果你把它转换成一个php对象,你只需要交换解析器,记住:php有很多结构,构建一个AST对于这种语言来说甚至一点都不简单

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

最后一点提示:


如果您担心ini文件解析太长,也许您可以将配置文件切片,而不是总是加载所有设置?

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

这是正确的选择


检查此项

如何为php使用一些操作码缓存或加速器。我想他们也会缓存php文件的内容。在这种情况下,哪种方法反序列化已经存在的对象或使用php数组从头开始构造对象更快。序列化对象是通过神奇的方法实现的,ZendEngine必须对它们执行查找。因此,这比通过数组构造的性能要差。操作码缓存是一个很好的调用,但请记住,它对缓存数据的格式的影响远小于对数据存储位置的影响!内存的速度几乎总是超过HDD存储的缓存(除非您的工具中有严重的错误;)。祝你好运