2013-06-18 42 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 

最好的部分是:你可以自己繁殖的標杆和驗證結果:)