新在Symfoob娱乐下载ny 6.3:性能改进
ob娱乐下载Symfony 6.3是支持由:
ob娱乐下载Symfony项目不断修改代码并在其代码库调整来提高性能。在Syob娱乐下载mfony 6.3我们做了以下相关变化相关的性能:
提高翻译的信息提取性能
的翻译:提取
命令扫描所有应用程序文件找到可翻译的内容,以帮助你更新翻译文件。这是一个非常方便的命令,但它可以是缓慢在大型代码库(例如100000 PHP文件或更多),因为它使用AST解析PHP文件内容。
在Syob娱乐下载mfony 6.3我们改善这个提取过程仅为PHP文件创建AST包含与翻译相关的内容。使用快速正则表达式,我们发现如果文件包含元素- >反式(
如果他们不,我们不要试图解析其内容。
在实践中,这减少了运行该命令的时间超过70%在100000年的PHP文件的项目。
允许禁用容器的XML倾销
提供的
路德Kamphuis
在# 49487。
在调试模式Syob娱乐下载mfony应用程序服务容器信息编译到一个XML文件。这个文件是使用各种命令:
配置:dump-reference
调试:自动装配
调试:容器
调试:路由器
线头:容器
然而,对于非常大的应用程序(成千上万的文件),生成这个文件需要几秒钟(和生成的文件大小是20 MB)。对于一些项目/开发人员,在这种情况下,该文件的好处不大于整体性能降低。
这就是为什么在Symfonyob娱乐下载 6.3中我们引入了一个新的配置选项debug.container.dump
。将其设置为假
不再容器信息转储到一个XML文件。
提高性能的序列化器标准化者/ Denormalizers
的序列化器组件使用PHP数组作为中间表示序列化对象和它们之间的内容。标准化者/ denormalizers照顾对象转化为数组,反之亦然。
在Syob娱乐下载mfony 6.3中,我们添加了一个getSupportedTypes (?字符串格式):美元数组
方法标准化者/ denormalizers所以他们可以声明对象的类型,他们可以处理,是否可缓存。
这种方式,Symfoob娱乐下载ny试图调用这个方法,而不是总是调用supportsNormalization ()
和supportsDenormalization ()
方法。我们已经更新了所有内置标准化者/ denormalizers添加这个方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
类DateTimeNormalizer实现了NormalizerInterface,DenormalizerInterface,CacheableSupportsMethodInterface{/ /……公共函数getSupportedTypes字符串(?美元格式):数组{美元isCacheable=__CLASS__进行= = =静态::类| |美元这- >hasCacheableSupportsMethod ();返回[\ DateTimeInterface::类= >美元isCacheable,\ DateTimeImmutable::类= >美元isCacheable,\ DateTime::类= >美元isCacheable,);}}
这取决于应用程序,这可以大大提高性能。在我们的测试中,某些应用程序减少了时间getNormalizer ()
的呼声超过80%。
其他一些小的变化
除了这些大的性能变化,我们做了一些微小的改动:
- 改进的性能
GlobResource
类用于查找文件配置组件通过检查使用的模式限制目录搜索(改变了尼古拉斯Grekas在公关# 49676) - 另一个改进的
GlobResource
类:重新排序条件减少了I / O指令显著(20%)(改变了马库斯无助在公关# 50087) - 优化代码LuhnValidator(改变了马克斯·贝克尔在公关# 49216)
- 改善服务容器通过减少编译时间
InlineServiceDefinitionsPass
时间的58%,ContainerBuilder: inVendors ()
7%(改变了尼古拉斯Grekas在公关# 48802)
这些改进是可能的感谢黑焰PHP应用程序,它允许我们概要文件找到瓶颈,然后测量性能收益。
评论
评论都关门了。
以确保评论保持相关,他们关闭了旧的帖子。
Julien Manganne is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now