ホームページ >Java >&#&チュートリアル >Javaの新機能Nashornの具体例を詳しく解説

Javaの新機能Nashornの具体例を詳しく解説

零下一度
零下一度オリジナル
2017-06-17 14:04:091865ブラウズ

この記事では主にJavaの新機能であるNashornの関連情報を紹介しますので、必要な方は参考にしてください

Nashornとは

Nashornは「ナスホーン」と読みます。第二次世界大戦中のドイツ戦車。これは、ECMAScript-262 バージョン 5.1 言語仕様に準拠した、古くて遅い Rhino に代わる Java8 の新世代 javascript エンジンでもあります。 JavaScript は Web ブラウザーで実行され、HTML 上でさまざまな dom 操作 を提供すると思われるかもしれませんが、Nashorn はブラウザー DOM オブジェクトをサポートしません。これは注意すべき点です。

Nashorn の使用開始について

主に 2 つの側面、jjs ツールと javax.script パッケージ下の API があります:

jjs は java_home/bin の下にあります。 例として、関数を作成してみましょう。 .js の内容は次のとおりです:


function f() {
return 1;
};
print( f() + 1 );

このファイルを実行し、このファイルをパラメーターとして jjs に渡します


jjs func.js

出力結果: 2

もう 1 つの側面は javax.script です。以前の Rhino の左側の API


ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName( "JavaScript" );
System.out.println( engine.getClass().getName() );
System.out.println( "Result:" + engine.eval( "function f() { return 1; }; f() + 1;" ) );

の出力は次のとおりです: jvm で実行される Rhino はすでに jdk6 に存在していましたが、なぜ今 Rhino を置き換える必要があるのでしょうか? Rhino と比較すると、他の JavaScript エンジン (Google の V8 など) は遅すぎるため、Rhino を書き直す方が良いでしょう。 Nashorn のハイライトであるため、以下でパフォーマンスの比較をテストしてみましょう。2 つのパフォーマンスを比較するには、ECMAScript 解析フレームワークである Esprima を使用して、非圧縮バージョンの jquery (約 268 kb) を解析します。コードからわかるように、テスト プログラムは Esprima の解析とトークン化を実行して、Rhino と Nashorn がテスト ファイルの内容をそれぞれ 30 回実行します。最初に、Rhino は 1726 ミリ秒かかり、ゆっくりと加速し、最終的に 950 ミリ秒で安定しました。Nashorn には別の特徴があります。最初の実行には 3682 ミリ秒かかりましたが、ウォームアップ後に急速に加速し、各実行で最終的に 175 ミリ秒で安定しました。以下の図では


nashorn が最初にコンパイルされます。JavaScript コードは Java バイトコードであり、その後、JVM 上で実行されます。最下層も invokedynamic コマンドを使用して実行されるため、実行速度は非常に高速です。


なぜ Java を使用して JavaScript を実装するのか

これは、私が同意する意見です:

1. 成熟した GC

2. より多くのスレッドのサポート。

4. 豊富な標準ライブラリとサードパーティライブラリ 一般に、Java プラットフォームの既存のリソースを最大限に活用します。

概要

新しい Rhino は、Rhino よりもはるかに高速な Rhino スタイルの馬車であると言えます。高性能 JavaScript 実行環境として、Nashorn には多くの可能性があります。

たとえば、Avatar.js は JVM 上での

Node.js

プログラミング モデルの実装をサポートするために Nashorn に依存しており、また、組み込みのロード バランサーを使用して複数のイベント ループを実装するなど、他の新機能も追加しています。マルチスレッドを使用して軽量のメッセージング メカニズムを実装します。Avatar は、JPA に基づく純粋な JavaScript ORM フレームワークである Model-Store も提供します。

企業で Nashorn を活用するもう 1 つの方法は、通常 Linux などのシェル スクリプトを使用するのと比較して、Javascript スクリプトを使用して Java と対話したり、Nashorn を使用して REST インターフェイスを介してサーバー操作を監視したりすることもできます。状況。

以上がJavaの新機能Nashornの具体例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。