Nashorn vs Javascript vs ECMAScript [英] Nashorn vs Javascript vs ECMAScript
问题描述
Java8提供下一代JavaScript引擎作为nashorn。
我们可以使用以下代码获取此引擎:
Java8 provides Next-Generation JavaScript Engine as nashorn. We can get this engine with following code:
ScriptEngineManager engineManager = new ScriptEngineManager();
ScriptEngine engine = engineManager.getEngineByName("nashorn");
但我发现 javascript 和 ECMAScript 也是getEngineByName()的有效参数
But i found that javascript and ECMAScript are also valid parameters for getEngineByName()
ScriptEngine engine = engineManager.getEngineByName("javascript");
ScriptEngine engine = engineManager.getEngineByName("ECMAScript");
我的疑问是:
- Nashorn,JavaScript和ECMAScript引擎有什么区别?
- java提供其他引擎吗?
- 哪一个更好用?
推荐答案
Javascript
和 ECMAScript
是与JVM捆绑在一起的默认JavaScript引擎的别名。 Java 8+包含 Nashorn
引擎,以前的版本使用的是Rhino引擎(rhino)。 Nashorn
比 Rhino
快得多,因为它正在将JavaScript编译成字节码,而不是以解释器模式运行。
Javascript
and ECMAScript
are aliases for default JavaScript engine bundled with JVM. Java 8+ includes Nashorn
engine, previous versions were using Rhino engine ("rhino"). Nashorn
is much faster than Rhino
, because it is compiling JavaScript into bytecode, instead of running in interpreter mode.
我知道在JVM中运行JavaScript的最快解决方案是J2V8( https://github.com/eclipsesource/J2V8 )。 JavaScript代码在 V8
引擎中运行,与Node.js和Chrome使用的引擎相同。在我们的测试中,它比Nashorn快2-3倍。
The fastest solution I know of to run JavaScript within JVM is J2V8 (https://github.com/eclipsesource/J2V8). JavaScript code runs within the V8
engine, the same one as is used by Node.js and Chrome. In our tests, it's about 2-3 times faster than Nashorn.
这篇关于Nashorn vs Javascript vs ECMAScript的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!