Zend Config 性能优化
我正在优化基于 Zend Framework 的应用程序,并且我确信使用基于 ini 的配置会降低整体性能,因为站点需要在每个页面请求上读取和解析 ini。现在我有 2 个想法来处理这种情况
- 缓存 ini 文件或缓存 zend_config 对象并从缓存中使用它
- 或者将基于 ini 的配置转换为 php
我不确定哪种方法提供更好的性能。如果需要的话,我将来会自己修改配置,并且我不需要将配置写回ini的功能。因此,请建议哪种方法更适合极端性能。在缓存方法中,它只是反序列化一个已经存在的对象,而在 php 数组中,它从头开始构造对象。
I am optimizing a Zend Framework based application, and I am sure using ini based config slows down overall performance as the sites need to read and parse ini on each and every page request. Now I have 2 ideas to deal with the situation
- Cache the ini file or cache the zend_config object and use it from cache
- Or convert the ini based config to php
I am not sure which approach provides better performance. I will be modifying the configuration my self in future if needed, and I don't need the feature of writing config back to the ini. So please suggest which approach is better for extreme performance. In cache approach its just deserializing an already existing object, while in php array its constructing object from scratch.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
缓存!
说明:
如果将其转换为 php 对象,您只需交换解析器,并且请注意:PHP 有许多构造,对于这种语言来说,构建 AST 甚至远非那么简单。
使用缓存,您的数据可能会存储在内存中,因此您的硬盘将不必执行任何 I/O 来获取每个请求的设置对象。即使是解析或反序列化也可以通过这种方式更快地处理,请记住这也将由 PHP 解释器完成。
最后提示:
如果您担心 ini 文件解析太长,也许您可以对配置文件进行切片,并且并不总是加载所有设置?
Cache!
Explanation:
If you convert it to a php Object you merely exchange the parser, and mind: PHP has many constructs, and building a AST is not even remotely simple for this language.
With a cache your data will likely be stored in Memory and so your HardDisk will not have to perform any I/O to get the settings object each request. Even parsing or deserialization can be handled a lot quicker that way, and remember this will also be done by the PHP Interpreter.
A last Hint:
If you are afraid your ini files parse too long, maybe you could slice your config file and, and not always load all settings?
缓存 ini 文件或缓存 zend_config 对象并从缓存中使用它,
这是正确的选择。
检查这个 application.ini 缓存
Cache the ini file or cache the zend_config object and use it from cache
this is the right choice.
check this application.ini cache