我正在做一个项目,我仍然在考虑使用HAML (漂亮的代码,较小的视图文件)而不是经典的ERB模板。
我担心的是生成视图的速度-我读了一篇文章/基准,几乎总是HAML比ERB慢-但事实是,这些文章已经有2-3年的历史了。
因此,我的问题是,在2012年初,这两个模板系统的比较情况如何?
发布于 2012-02-12 15:03:28
以下是来自Nov 2011的一些基准测试。您应该能够cd到您的haml目录并运行rake benchmark。我之所以说“应该”,是因为您需要安装适当的依赖项才能运行该任务。我玩了几分钟,但在当地没有运气。相关文件为haml/test/benchmark.rb。
编辑:我确实为你找到了更多的信息。其他人遇到了和我一样的问题,试图让基准在本地工作,所以他们自己滚动了。我继承了这个要点,并添加了对将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。要点也已更新。
发布于 2013-08-28 19:14:40
网上已经有一堆辩论记录在案了。
但是当我们有一个专门使用ERB的应用程序时。为什么我们要尝试切换到HAML?对我来说,这是浪费时间,是一个不会带来很多好处的糟糕决定。虽然我们的代码在HAML中会突然变得更干净、更漂亮,但我们会浪费宝贵的时间将ERB转换为HAML。我们还有许多其他重要的事情要做,为什么要把时间浪费在这种情况下毫无意义的事情上呢?
它们都是相对的。您不需要使用HAML而不是ERB。ERB可以做所有相同的事情。它们只是完成相同工作的不同工具。
https://stackoverflow.com/questions/9245854
复制相似问题