大家好,周五快乐!
Vipul 在此为您带来本周 Rails 的最新动态。
本周,路由查找进行了多项改进。以下是一些值得注意的更改:
通过减少切片/匹配来加速 GTG 模拟器
此更改通过消除重复和避免不必要的字符串分配,将简单情况下的路由性能提高了 10-20%。
微优化 Router#find_routes
此 PR 通过移除开销,对路由查找过程进行了微小改进,并使路由查找速度比 Rails 8.0 快 2-2.5 倍。
简化 stdparam 状态以减少保留的哈希
此 PR 简化了 stdparam_state 中存储的数据,使其成为更简单的哈希映射,从而提高了哈希密集型操作的性能。
以下是该领域其他改进 PR 的列表: #54504、 #54491、 #54505、 #54515、 #54516、 #54526。
允许执行包装器处理所有异常
此 PR 更改了执行包装器和执行中间件,使其默认捕获所有 Exception 而不是所有 StandardError。
本质上,在此更改之前
Rails.error.handle do
raise Exception
end
将不会处理异常,但现在会了。
将 Value 类型默认设置为可变
此更改默认使 ActiveModel 类型值可变,从而保证自定义类型值在修改时得到适当的复制。
将关键字参数传递给 PostgreSQL Adapter 表方法
通过使用转发参数 validate_constraint 和 validate_check_constraint 开始接受关键字参数奠定了重要的基础。
进一步限制需要运行的矛盾查询
此更改可确保只有完全匹配的查询才会触发聚合,忽略不匹配项和某些 ARel 值,以避免一些额外的查询。
允许跳过 HashWithIndifferentAccess 值转换
此 PR 解决了 ActiveModel 处理属性更改中的效率低下问题,特别是在使用序列化属性中的 HashWithIndifferentAccess 时。
您可以在此处查看所有更改的完整列表: 此处。
上周,我们有 18 位贡献者 为 Rails 代码库做出了贡献!
下次再见!
订阅以通过邮件获取这些更新。