第一篇写在边缘的文章涵盖了自 Rails 2.1 以来的一些 API 变更,这次我将按照承诺介绍性能提升。
现在就开始…
Jeremy Kemper 提高了 Erb 处理的效率,尤其是 concat 和 capture 帮助器方法。
“特殊”Erb _erbout
已替换为实例变量,其优势在于
,通常很昂贵,_erbout
变量,以及output_buffer
的读写器方法使用缓冲区(因此如果你需要,可以覆盖它)。相关变更集:933697a
- 0bdb7d3
- 4d4c8e2
局部模板初始化和 JavaScript 帮助器已通过 Jeremy Kemper 进行重构和优化,以提高速度和效率。这些只是 Jeremy 最近提交的优化中的一部分。确保查看一些Rails 提交(或者任何高质量的开源项目)——你可能会学到一些东西!
相关变更集:局部 – JavaScript 帮助器
RecordIdentifier通过简单地使用记忆化加快了速度,从而减少了执行的变格数,以及其他操作。RecordIdentifier 广泛用于缓存键、局部模板路径,以及在大多数你在其中识别 ActiveRecord 模型但又不需要其实际id
的位置。
Jeremy Kemper 的相关变更集:c1a9820 – 566d717
更新:抱歉,此更改稍后在6573f6a 中被还原。
ActiveSupport::Cache 模块里的各种缓存存储都是需要 lazy load 的——这意味着它们仅在你开始实际使用时才会被 require
。