ruby-on-rails - Rails 3.2 - haml 与 erb。哈姆更快吗? (2012 年 2 月)

标签 ruby-on-rails view haml erb ruby-on-rails-3.2

我正在做一个项目,我仍在考虑使用 HAML(漂亮的代码,更小的 View 文件)而不是经典的 ERB 模板。

我担心为什么我还没有这样做是产生 View 的速度 - 我阅读了一篇文章/基准,几乎总是 HAML 比 ERB 慢 - 但事实是,这些文章已经有 2-3 年的历史了。

所以我的问题是,在 2012 年初,现在这两个模板系统的比较看起来如何?

最佳答案

以下是 Nov 2011 中某人的一些基准测试.您应该能够 cd 到您的 haml 目录并运行 rake benchmark .我说“应该”是因为您需要安装正确的依赖项才能运行该任务。我玩了几分钟,但在本地没有运气。相关文件是haml/test/benchmark.rb .

编辑:
我确实为您找到了更多信息。其他人在尝试让基准测试在本地运行时遇到了与我相同的麻烦,因此他们推出了自己的基准测试。我 fork 了那个要点,并增加了对比较 haml 和 erb 的支持:https://gist.github.com/1807036 .我使用了 haml 库用于基准测试的相同模板。以下是我运行代码的结果:

$ ruby benchmark.rb
       user     system      total        real
haml:  0.650000   0.000000   0.650000 (  0.651584)
erb:  0.540000   0.000000   0.540000 (  0.534727)

我使用了 ruby​​ 1.9.3-p0,haml 3.1.4。

2020 年 5 月更新:github 上的 @spickermann 指出了基准测试中的一个缺陷,即 Haml 与 erb 的比较是不公平的。 haml 引擎实例仅实例化一次,而 erb 实例在 1000 次基准测试中的每一次运行中都实例化。当我们修复基准测试时,我们在每次运行基准测试时实例化每个实例,我们得到非常不同的结果:
$ ruby benchmark.rb 
       user     system      total        real
haml:  3.259634   0.007936   3.267570 (  3.271728)
erb:  0.205065   0.000571   0.205636 (  0.205824)

这个新的基准测试使用 ruby​​ 2.7.1,haml 5.1.2。要点也已更新。

关于ruby-on-rails - Rails 3.2 - haml 与 erb。哈姆更快吗? (2012 年 2 月),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9245854/

相关文章:

ruby-on-rails - assert_equal 表示 <0.15> 预期但为 <0.15>,但前提是该方法以某种方式计算 0.15

ruby-on-rails - 在 Rails 4 中的 has_and_belongs_to_many 关系中使用 uniq

ruby - Rails 3.1.0 使用 haml 的问题 - 缺少模板错误

javascript - 如何将详细信息行限制为 10?

shell - 将 URL 地址添加到 SAPUI5 中的 View

css - 如何关闭 Eclipse 中的 CSS 预览 View ?

ios - 我如何检查我的 View Controller 现在是否显示?

带有 Haml 的 Angular2

ruby-on-rails - 如何使用 HAML 和 SASS 作为默认模板启动 Rails 3 应用程序?

ruby-on-rails - ActiveRecord 将 Rails 应用程序从 Sqlite 转换为 PostgreSQL 时出错