2017-02-16 161 views
2

Java8提供下一代JavaScript引擎作爲nashorn。 我們可以得到這款發動機與下面的代碼:Nashorn vs Javascript vs ECMAScript

ScriptEngineManager engineManager = new ScriptEngineManager(); 
ScriptEngine engine = engineManager.getEngineByName("nashorn"); 

但我發現的JavaScript的ECMAScript也有效參數getEngineByName所()

ScriptEngine engine = engineManager.getEngineByName("javascript"); 
ScriptEngine engine = engineManager.getEngineByName("ECMAScript"); 

我的查詢是:

  • 有什麼區別吐溫,Nashorn,JavaScript和ECMAScript引擎?
  • java是否提供其他引擎?
  • 哪一個更好用?

回答

3

JavascriptECMAScript是與JVM捆綁在一起的默認JavaScript引擎的別名。 Java 8+包括Nashorn引擎,以前的版本都使用Rhino引擎(「rhino」)。 NashornRhino快得多,因爲它將JavaScript編譯爲字節碼,而不是在解釋器模式下運行。

我知道在JVM中運行JavaScript的最快解決方案是J2V8(https://github.com/eclipsesource/J2V8)。 JavaScript代碼在V8引擎中運行,與Node.js和Chrome使用的代碼相同。在我們的測試中,它比Nashorn快2-3倍。