Should I use haml or erb or erubis for potentially high traffic site?我最近一直在和Haml一起玩,并且非常喜欢结果代码在我看来……开发人员的方式。 我也不太担心设计师能够使用或更改它...我们是一个很小的团队。 就是说,在我们认为一个项目上开始工作会产生大量的流量(谁没有?)。 我担心有些事情我不了解haml。 erb有什么可以做的吗? 随着项目的发展,haml是否会产生负面影响? 还有其他事情要考虑吗? 最后...哈姆尔如何与erubis快速比较? 我看到它现在应该击败了erb和eruby ... 谢谢! 哈姆岩石。我没有看到任何最新的性能数据,但是最近这些时间已经非常接近erb了。我认为,如果您打开丑陋的模式(这可以防止缩进),它可能比erb更快。我们每天使用Haml进行的网页浏览量为280万。
在Haml源代码树中签入了一个基准测试器: 2009年11月更新 Nathan(Haml的主要开发人员)在他的博客上发布了一些Haml 2.2基准测试。您可以在此处看到确切的数字,但总之:
您可以通过将 如果使用Rails,则Haml和erubis之间的性能差异可以忽略不计:无论如何,模板在第一次命中后就得到编译和缓存。将其与片段和页面缓存结合使用,您可以放心,视图不是应用程序的性能瓶颈。 您应该问自己的问题是:您喜欢写Haml吗?它会提高您的生产力吗?然后,您可以轻松决定。 我喜欢HAML,因为它是轻松编写结构化HTML的好工具,并且通常使用起来很有趣。但这与根据站点可能产生的流量选择工具几乎没有关系。 如果您担心流量,则应该担心正确使用缓存。然后,您需要应用一般Web应用程序性能的原则-结果是您将对页面加载具有快速响应。高流量的网站真正需要的是什么。 您可以在此处找到一些演示文稿,以展示如何提高网站性能:
我所知道的学习如何正确使用Rails缓存的最佳位置是:
我认为这完全是个人喜好和可维护性的问题。对我而言,Haml使模板更易于阅读和理解,并且性能非常令人满意。最后,模板语言不太可能是您需要优化的地方-更可能是数据库查询,视图或对象缓存等。 但是,对于ERb模板,如果使用erubis,则基本上可以免费获得更好的性能。 如果您从编码的角度喜欢haml的工作方式,则不必过多担心模板引擎的性能。 (不过,正如您所指出的,它现在很快。)它肯定可以生成其他引擎可以输出的任何输出。 通常,将精力投入到设置缓存上比担心性能问题所在的模板引擎更为有利。 我个人会在预编译的模板中向我们推荐erubis。 特别是在不需要动态模板的情况下。然后,最大的减速将受到红宝石解析红宝石的速度的限制。 我可能会设置一个小型cron作业,该作业仅监视更改的源模板,并在更改时自动编译它们,您可以在不使用它们时将其关闭。 一次编译,多次使用。 哦,如果您真的很在意速度,那么Tenjin也许也值得一看(与erubis相同的创作者) http://www.kuwata-lab.com/tenjin/rbtenjin-examples.html 好吧,Haml的性能在每个版本中都不断提高。目前在可接受的位置吗?这是由您决定的(我倾向于说"是",但这是您根据需要选择的)。如果您喜欢模板及其提供的可读性,那么性能下降(可忽略不计)应该确实是您做出决定的最终因素。 您应该考虑与Haml结合使用的其他工具之一是make_resourceful,这是Haml的维护者(Nathan Weizenbaum)的另一个杰作,它简化了Rails应用程序中的许多RESTful内容。 如果您对Haml(和m_r)还有其他更具体的问题,我敢肯定,内森非常乐于回答。可以通过Jabber / XMPP和电子邮件与他联系。他的联系信息可以在这里找到。 |