2013-06-18 41 views
0

我正在寻找最快和可靠的java模板引擎。有微秒功能的模板引擎的基准吗?有没有Java模板引擎基准?

我发现引擎: http://code.google.com/p/mist4j/wiki/USAGE http://lazyj.sourceforge.net/

Scrpting语言模板基准测试http://www.kuwata-lab.com/tenjin/ 有速度很烂。

我也很感兴趣的引擎找到和freemarker和StringTemplate引擎的能力比较。

+0

最后我看到它(它肯定没有改变)Velocity没有被编译成任何东西,它只是直接运行AST。 AST节点将使用'Map.get'和reflection来获取值。 FreeMarker也是如此(我敢肯定),它应该会更慢,因为它需要做更多的功能(更多功能)。为“脚本语言”(如Python)编写的OTOH模板语言通常会转换为主机脚本语言,然后高度调整的脚本语言实现(如CPython)将实现它的魔力...因此速度不同。 – ddekany

回答

1

我跑了10000次循环。节奏是无法加载模板,所以我需要排除在我的测试...

的StringBuilder: 【JAVA] N次:10000,实时:641(毫秒)

的freemarker: 【JAVA] N次:10000,实时:1602(毫秒)

速度: 【JAVA] N次:10000,实时:1035(毫秒)

火腿: 【JAVA] N次:10000,实时:633 (毫秒)

HTTL: 【JAVA] N次:10000,实时:479(毫秒)

jmte: 【JAVA] N次:10000,实时:2193(毫秒)

HTTL在所有测试优于有100个时间循环,1000个时间循环和最后10000个循环(上面也提到过)。

4

这里是一个模板引擎基准:https://github.com/greenlaw110/template-engine-benchmarks,该基准测试下面的Java模板引擎:

  • 的StringBuilder - 基线。使用手动StringBulder
  • 创建页面的freemarker
  • - v2.3.19
  • 速度 - V1.7
  • 节奏 - 1.0-B2
  • HTTL - 1.0.7
  • beetl - 1.2
  • 火腿 - 2.3
  • jangod - 没有版本信息
  • thymeleaf - 2.0.15
+0

有趣的基准,但我想知道为什么你不公布你的结果。也许我太懒了:) – sinuhepop

+1

事情是模板引擎正在更新,并且结果可能与新版本无关。因此,最好选择每个模板引擎jar文件的最新版本,将它们放到lib文件夹中并运行基准测试。无论如何,您可以在这里找到基准测试结果的快照:http://rythmengine.org/doc/feature#high-performance –

+0

谢谢。我想我们可以通过这种方式了解数字,尽管随着时间的推移它们可能会发生一些变化。 – sinuhepop

1

下面是java的模板引擎

https://github.com/jreijn/spring-comparing-template-engines

根据它一个很好的基准:

jTwig     4.709 seconds 
Thymeleaf    4.147 seconds 
Scalate - Scaml   3.479 seconds 
Handlebars    2.936 seconds 
Jade4j     2.735 seconds 
Freemarker    2.637 seconds 
HTTL     2.531 seconds 
Pebble     2.512 seconds 
Velocity    2.491 seconds 
Mustache (JMustache) 2.326 seconds 
JSP      2.227 seconds 

最好的部分是:你可以自己繁殖的标杆和验证结果:)