上一篇锋芒初露的文章介绍了一些 Rails 2.1 以来 API 的变化,而这一次,我将兑现承诺,介绍 **性能改进**。
直入主题…
Jeremy Kemper 提高了 Erb 处理的效率,特别是 concat 和 capture 辅助方法。
“特殊”的 Erb _erbout 已被实例变量替换,这使得
s,_erbout 变量,并且output_buffer 读写方法访问缓冲区(这样您就可以根据需要重写它)。相关提交:933697a
- 0bdb7d3
- 4d4c8e2
Jeremy Kemper 对局部模板初始化和 JavaScript 辅助方法进行了重构和优化,以提高速度和效率。这只是 Jeremy 近期提交的一些优化。一定要查看一些 Rails 的提交记录(或者任何高质量的开源项目)——您可能会学到一些东西!
相关提交:局部模板 – JavaScript 辅助方法
通过一些简单的记忆化(memo-ization)使用,RecordIdentifier 得到了加速,从而减少了执行的变位次数等。RecordIdentifier 被广泛用于缓存键、局部模板路径以及大多数不需要关心实际 id 的 ActiveRecord 模型标识的地方。
Jeremy Kemper 的相关提交:c1a9820 – 566d717
更新:抱歉,此更改后来在 6573f6a 中被撤销。
ActiveSupport::Cache 模块中的各种缓存存储现在是惰性加载的——这意味着只有当您实际开始使用它们时,它们才会被 require。