我正在优化一个基于Zend框架的应用程序,我确信使用基于ini的配置会降低整体性能,因为站点需要在每个页面请求上读取和解析ini。现在我有两个主意来处理这个情况
- 缓存ini文件或缓存zend_config对象,并从缓存 中使用它
- 或将基于ini的配置转换为php
我不确定哪种方法提供更好的性能。如果需要,我将在将来修改自己的配置,并且我不需要将配置写回ini的功能。所以请建议哪种方法更适合极限性能。在缓存方法中,它只是反序列化一个已经存在的对象,而在php数组中,它从头开始构造对象。
缓存!
解释:
如果您将其转换为php对象,您只需交换解析器,并且要记住:php有许多结构,对于这种语言来说,构建AST甚至一点也不简单。
有了缓存,你的数据可能会存储在内存中,所以你的硬盘将不必执行任何I/O来获得每个请求的设置对象。即使解析或反序列化也可以通过这种方式更快地处理,记住这也将由PHP解释器完成。最后一个提示:
如果你害怕你的ini文件解析太长,也许你可以切片你的配置文件和,而不是总是加载所有的设置?
缓存ini文件或缓存zend_config对象并从缓存
使用它这是正确的选择。