さまざまなブラウザー内 Javascript エンジンがどのように積み重なっていくかを確認したい場合は、Safari 4 (はい、Windows でも動作します!)、Chrome V8、Firefox 3.5、および IE 8 (Windows を使用している場合) をインストールして、ベンチマークを実行してください。 :
http://www2.webkit.org/perf/sunspider-0.9/sunspider.html
上記で Pointy が言ったように、新しい Firefox 3.5 は TraceMonkey を使用し、何らかの形式の JIT を使用してオンザフライでコードを中間編集するようにコンパイルします。したがって、V8に比べてやや有利になるはずです。少なくとも、Firefox 3 SpiderMonkey (JIT なし) のように V8 よりも 10 倍遅くなることはありません。
私にとっては... Safari 4.0.3 は、Win XP の Firefox 3.5.3 で Tracemonky よりも 2.5 倍高速でした。IE8 ははるかに遅かった。現在、Chrome をインストールしていません。
Java バイトコードにコンパイルする Rhino については知りません。実行時にオブジェクト インスタンスに属性を追加できるなど、Javascript の動的機能をまだ解釈している場合 (Javascript で許可されている obj.someNewAttribute="someValue" の例)... 完全に「コンパイル済み」であるかどうかはわかりません。 " をバイトコードに変換すると、Javascript を実行するたびに Javascript ソース コード テキストからコンパイルする必要がないこと以外に、パフォーマンスが向上しない可能性があります。Javascript では、eval("x=10;y=20;z=x*y"); のような非常に動的な構文が使用できることに注意してください。つまり、実行時にコンパイルされるコードの文字列を構築できます。そのため、JVM バイトコードにコンパイルしたとしても、Rhino は混合モードで解釈/コンパイルされると思います。
JVM は、JIT をサポートする非常に優れたものではありますが、依然としてインタープリターです。したがって、Rhino-on-JVM を 2 つのインタープリター レイヤー (インタープリター オン インタープリター) またはインタープリター^2 と考えるのが好きです。一方、他の Javascript エンジンのほとんどは C で記述されているため、インタープリターのように動作する必要があります^1。各インタープリター レイヤーは、C や C++ (たとえば、Perl、Python、Ruby を参照) と比較して 5 ~ 10 倍のパフォーマンス低下を追加する可能性がありますが、JIT を使用すると、パフォーマンス ヒットは 2 ~ 4 倍のオーダーではるかに低くなる可能性があります。そして、JVM はこれまでで最も堅牢で成熟した JIT エンジンの 1 つを備えています。
したがって、走行距離は間違いなく異なり、独自のハードウェアと OS で意図したアプリケーションの本当の答えが必要な場合は、いくつかの本格的なベンチマークを実行することでおそらく恩恵を受けるでしょう.
多くの人がRhinoを使用していることを知っているので、Rhinoが極端に遅くなることはありません。主な魅力は速度ではなく、Java ライブラリへのフックを備えた、コーディングが容易で軽量で組み込み可能なインタープリターであるため、ソフトウェア プロジェクトのスクリプト作成/構成/拡張性に最適です。UltraEdit などの一部のテキスト エディタには、代わりのマクロ スクリプト エンジンとして Javascript が組み込まれています。すべてのプログラマーは、JavaScript を非常に簡単に習得できるように思われるため、簡単に習得できます。
Rhino の利点の 1 つは、JVM が実行されるほぼすべての場所で実行できることです。私の経験では、スタンドアロンの TraceMonkey または SpiderMonkey をビルドしてコマンド ラインから実行しようとすると、Windows などのシステムでは少し面倒です。また、独自のアプリケーションに組み込むにはさらに時間がかかる場合があります。しかし、組み込み可能な言語を使用することの見返りは、大きなプロジェクトにとっては価値があります。これは、それが目的である場合に「独自の」ミニ スクリプト ソリューションを作成する必要がある場合と比較してです。
Java と rhino jar があれば、Rhino でのスクリプティングは非常に簡単です。JavaScript を記述して、コマンド ラインから実行するだけです。単純な作業にいつも使用しています。