我应该使用哈姆或erb或erubis潜在的高stream量网站?

最近我一直在和Haml玩,真的很喜欢结果代码对我来说是开发者。 我也不太担心devise师能够消费或改变它…我们是一个小团队。

也就是说,开始一个项目的工作,我们相信会产生相当多的stream量(谁不?)。 我担心有些事情我只是不知道哈姆。 有没有什么可以做的哈姆不能? haml是否会随着项目的增长而产生负面影响? 还有其他的事情应该考虑吗?

最后… Haml如何比较速度与erubis? 我看到它现在打败了erb和eruby …

谢谢!

哈姆岩石。 我还没有看到最近的performance数字,但是这几天差不多。 我认为,如果你打开丑陋的模式(这可以防止漂亮的缩进),它可能会比erb更快。我们每天用Haml做280万的综合浏览量。

有一个基准testing者进入Haml源代码树: http : //github.com/nex3/haml/tree/master/test

2009年11月更新

(Haml的主要开发人员)在他的博客上发表了一些Haml 2.2基准 。 你可以看到确切的数字,但总之:

  • 正常(漂亮打印)模式=比ERB慢2.8倍
  • 丑陋的模式(没有漂亮的标签添加)=相当于ERB

您可以通过在初始化程序或环境文件中放置Haml::Template::options[:ugly] = true来启用丑陋模式。 请注意,丑陋的模式并不是那么难看 – 所产生的HTML实际上比ERB更漂亮 – 它只是没有很好地缩进。

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

你应该问自己的问题是:你喜欢写Haml吗? 这是否使你更有效率? 那么你可以决定更容易。

我喜欢HAML,因为它是轻松编写结构化HTML的好工具,通常使用它只是一个喜悦。 但是,根据网站可能拥有的stream量来select工具几乎没有关系。

如果您担心stream量,您应该考虑正确使用caching。 然后,您需要应用一般networking应用程序性能的原则 – 结果是,您将拥有超级敏捷的页面加载响应。 这是一个高stream量的网站真正需要的。

展示如何提高网站性能的几个演示可以在这里find:

  • Michael Koziarski在2008年巴黎的Rails上谈到了Rails性能

  • Jeremy Kemper谈论RailsConf EU'08上的Rails性能

我知道如何正确使用railscaching的最好的地方是:

  • RailscachingPeepCode截屏

我认为这完全是个人喜好和可维护性的问题。 对我来说,Haml使模板更容易阅读和理解,而且性能是非常可以接受的。 最后,模板语言不太可能成为您需要优化的地方 – 更可能是数据库查询,视图或对象caching等。

但是,在ERb模板的情况下,如果您使用erubis,您将获得更好的性能。

如果你喜欢从编码的angular度来看haml是如何工作的,不要担心模板引擎的性能太多。 (虽然,正如你所指出的那样,现在速度很快)。它可以确定地产生其他引擎可以输出的任何信息。

一般来说,将精力放在设置caching上比利用模板引擎担心性能问题更有利。

我会亲自推荐我们erubis在预编译模板。

特别是如果不需要dynamic模板。 那么你的最大的放缓将受到ruby可以parsingruby的速度的限制。

我可能会设置一个小的cron作业,只监视已更改的源代码模板,并自动合并它们,以便在不使用时closures。

编译一次,使用很多。

哦,如果你真的关心速度,天神也许值得一看(和erubis一样的创造者)

http://www.kuwata-lab.com/tenjin/rbtenjin-examples.html

那么,每次发布Haml的性能都会不断提高。 目前是否可以接受? 这是给你决定的(我倾向于说“是”,但是这是你根据你的需要select的)。 如果你喜欢它们提供的模板和可读性,那么性能的下降(尽pipe可以忽略不计)应该是你决定的最后一个因素。

与Haml结合使用的其他工具之一是make_resourceful,是Haml(Nathan Weizenbaum)的维护者的另一个gem,它简化了Rails应用程序中很多RESTful事物。

如果你有更多关于Haml(和m_r)的更具体的问题,我相信Nathan会很乐意回答他们的。 他可以通过Jabber / XMPP和电子邮件联系到。 他的联系信息可以在这里find。