2014年3月22日土曜日

Nashorn(Java 8のJavaScriptエンジン)の実力

Java 8 になって、JREに含まれるJavaScriptエンジンがRhinoからNashornに変わりました。
public class Inspector {
    public static void main(String[] args) {
        ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");
        System.out.println("engine = " + engine);
    }
}
>engine = jdk.nashorn.api.scripting.NashornScriptEngine@548ad73b

速くなったのかなー。ということで、RhinoとNashhornの実行速度を比較してみます。
コードはこんなシンプルなものです。

public class Inspector {
    public static void main(String[] args) throws ScriptException {
        ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");
        System.out.println("engine = " + engine);
        long startTime = System.currentTimeMillis();
        engine.eval("var count = 0;for(var i=0;i<100000;i++){count += i}");
        System.out.println("finish "+(System.currentTimeMillis() - startTime));
    }
}

Rhinoで実行すると、
engine = com.sun.script.javascript.RhinoScriptEngine@4fb3c3d9
finish 367

Nashoneで実行すると、
engine = jdk.nashorn.api.scripting.NashornScriptEngine@548ad73b
finish 117

Nashoneはやーい。

0 件のコメント:

コメントを投稿