加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Symfony2应用程序在每个请求中解析YML

发布时间:2020-12-13 16:45:36 所属栏目:PHP教程 来源:网络整理
导读:我的Symfony2应用程序存在一些性能问题,因此我在其上运行了一个webgrind以查看发生了什么.原来它是在每个请求上解析大量的YML文件,我无法弄清楚原因.我已经启用了APC缓存,所以我不知道它可能是什么.任何有关此问题的帮助将不胜感激. 编辑:这是我运行的webgr
我的Symfony2应用程序存在一些性能问题,因此我在其上运行了一个webgrind以查看发生了什么.原来它是在每个请求上解析大量的YML文件,我无法弄清楚原因.我已经启用了APC缓存,所以我不知道它可能是什么.任何有关此问题的帮助将不胜感激.

编辑:这是我运行的webgrind的屏幕截图.

解决方法

根据我的研究,似乎APCClassLoader不会导致Symfony2缓存Doctrine中使用的YAML文件.它似乎默认缓存配置文件(config.yml,parameters.yml),但Doctrine使用的实际ORM YAML文件不会被缓存,除非您指定一个缓存驱动程序,如下面链接的文档中所示:

http://symfony.com/doc/2.3/reference/configuration/doctrine.html#caching-drivers

因此,如果海报只有YAML配置而不是YAML原则,上述解决方案可能会解决问题.但是,如果涉及Doctrine YAML,则必须指定Doctrine缓存驱动程序.

这也会影响使用Annotations的人,因为除非指定了缓存驱动程序(Doctrine默认数组缓存除外),否则将在每个页面加载时解析它们.

以为我应该发帖,因为这是一个复杂的问题,上面的答案在我的情况下误导了Doctrine ORM YAML文件是缓存问题的根源.

这篇文章详细介绍了我的具体问题和解决方案:

Why is Symfony2 app spending 70-90% of its time parsing YAML?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读