在可能会有高流量的站点上使用haml或erb或erubis吗?

我最近一直在和Haml一起玩,真的很喜欢生成的代码对我来说是...开发人员。 我也不太担心设计师能够使用或更改它...我们是一个很小的团队。

就是说,开始我们认为会产生大量流量的项目(谁没有?)。 我担心有些事情我只是不了解haml。 erb有什么可以做的吗? 随着项目的发展,haml是否会产生负面影响? 还有其他事情要考虑吗?

最后...哈姆尔如何与erubis快速比较? 我看到它现在应该击败了erb和eruby ...

谢谢!

James A. Rosen asked 2020-02-22T22:30:33Z
7个解决方案
45 votes

哈姆岩石。 我没有看到任何最新的性能数据,但是最近这些时间已经非常接近erb了。 我认为,如果您打开丑陋的模式(这可以防止缩进),它可能比erb更快。我们每天使用Haml进行的浏览量为280万。

在Haml源代码树中签入了一个基准测试器:[http://github.com/nex3/haml/tree/master/test]

2009年11月更新

Nathan(Haml的主要开发人员)在他的博客上发布了一些Haml 2.2基准测试。 您可以在此处看到确切的数字,但总之:

  • 普通(精美打印)模式=比ERB慢2.8倍
  • 丑陋模式(未添加漂亮标签)=等于ERB

您可以通过将Haml::Template::options[:ugly] = true放在初始化程序或环境文件中来启用丑陋模式。 请注意,丑陋模式并不是真的丑陋-生成的HTML实际上比ERB更漂亮-只是缩进不好。

casey answered 2020-02-22T22:31:28Z
27 votes

如果使用Rails,则Haml和erubis之间的性能差异可以忽略不计:无论如何,模板在第一次命中后就可以编译和缓存。 将其与片段和页面缓存结合使用,您可以放心,视图不是应用程序的性能瓶颈。

您应该问自己的问题是:您喜欢写Haml吗? 它会提高您的生产力吗? 然后,您可以轻松决定。

mislav answered 2020-02-22T22:31:52Z
11 votes

我喜欢HAML,因为它是轻松编写结构化HTML的好工具,并且通常使用起来很有趣。 但这与根据站点可能产生的流量选择工具几乎没有关系。

如果您担心流量,则应该担心正确使用缓存。 然后,您需要应用一般Web应用程序性能的原理-结果是您将对页面加载具有快速响应。 高流量的网站真正需要的是什么。

可以在此处找到一些演示文稿,以演示如何提高网站性能:

  • 迈克尔·科兹亚斯基(Michael Koziarski)在2008年巴黎Rails大会上谈及Rails的表现

  • 杰里米·肯珀(Jeremy Kemper)在RailsConf EU'08上谈论Rails的性能

我所知道的学习如何正确使用Rails缓存的最佳位置是:

  • Rails缓存PeepCode截屏
Evgeny answered 2020-02-22T22:32:40Z
4 votes

我认为这完全是个人喜好和可维护性的问题。 对我来说,Haml使模板更易于阅读和理解,并且性能非常令人满意。 最后,模板语言不太可能是您需要优化的地方-更可能是数据库查询,视图或对象缓存等。

但是,对于ERb模板,如果使用erubis,则基本上可以免费获得更好的性能。

seancribbs answered 2020-02-22T22:33:05Z
2 votes

如果您从编码的角度喜欢haml的工作方式,则不必过多担心模板引擎的性能。 (尽管,正如您所指出的,它现在很快。)它肯定可以生成其他引擎可以输出的任何输出。

通常,将精力投入到设置缓存上比担心性能问题所在的模板引擎更有利。

Nate answered 2020-02-22T22:33:30Z
1 votes

我个人会在预编译的模板中向我们推荐erubis。

特别是在不需要动态模板的情况下。 然后,最大的减速将受到红宝石解析红宝石的速度的限制。

我可能会设置一个小型cron作业,该作业仅监视更改的源模板,并在更改时自动编译它们,您可以在不使用它们时将其关闭。

一次编译,多次使用。

哦,如果您真的很在意速度,那么Tenjin也许也值得一看(与erubis相同的创作者)

[HTTP://呜呜呜.裤袜他-喇叭.com/头摁进/若把它摁进-examples.HTML]

Kent Fredric answered 2020-02-22T22:34:12Z
0 votes

好吧,Haml的性能在每个版本中都不断提高。 目前在可接受的位置吗? 这是由您决定的(我倾向于说“是”,但这是您根据需要选择的)。 如果您喜欢模板及其提供的可读性,那么性能下降(可忽略不计)应该是您决定的最终因素。

您应该考虑与Haml结合使用的其他工具之一是make_resourceful,这是Haml的维护者(Nathan Weizenbaum)的另一个杰作,它简化了Rails应用程序中的许多RESTful内容。

如果您对Haml(和m_r)还有其他更具体的问题,我敢肯定,内森非常乐于回答。 可以通过Jabber / XMPP和电子邮件与他联系。 他的联系信息可以在这里找到。

wfarr answered 2020-02-22T22:34:42Z
translate from https://stackoverflow.com:/questions/95821/should-i-use-haml-or-erb-or-erubis-for-potentially-high-traffic-site