Rails 3.2 - haml vs. erb。haml是否更快?(2012年2月)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails 3.2 - haml vs. erb。haml是否更快?(2012年2月)相关的知识,希望对你有一定的参考价值。
我正在做一个项目,我仍然在考虑使用HAML(代码漂亮,视图文件较小)而不是经典的ERB模板。
我担心为什么我还没有这样做,是生成视图的速度--我读了一篇文章benchmarks,几乎总是HAML比ERB慢--但事实是,这些文章是2-3年前的。
所以我的问题是,如何看待这两个模板系统的比较,现在,在2012年开始?
这里有一些基准,有人在 2011年11月. 你 应 可以cd到你的haml目录下并运行 rake benchmark
. 我说 "应该 "是因为你需要安装适当的依赖关系才能运行该任务。我玩了几分钟,但在本地没有找到。相关文件是 haml/test/benchmark.rb
.
EDIT:我确实为你找到了一些更多的信息。有人和我遇到了同样的麻烦,试图让基准在本地工作,所以他们推出了自己的基准。我把那个 gist 分叉了,并添加了对比较 haml 和 erb 的支持。https:/gist.github.com1807036. 我使用了和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.
更新52020。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. 要点也已经更新了。
网络上已经有一堆辩论的记录。
但是,当我们有一个应用程序,我们完全使用ERB。我们为什么要尝试切换到HAML呢?对我来说,这是在浪费时间,也是一个糟糕的决定,不会带来很多好处。虽然我们的代码在HAML中会突然变得更干净、更漂亮一些,但我们会浪费宝贵的时间来将ERB转换为HAML。我们有这么多其他重要的事情要做,为什么要在这种情况下把时间浪费在这么没有意义的事情上呢?
这都是相对的。你不需要用HAML代替ERB。ERB可以做所有相同的事情。它们只是同一工作的不同工具。
以上是关于Rails 3.2 - haml vs. erb。haml是否更快?(2012年2月)的主要内容,如果未能解决你的问题,请参考以下文章
在 Rails 中使用 HAML 而不是 ERB 时 CSS 未加载 (404)