スクリプト言語からコンパイル言語への変換、または純粋なコンパイル言語への変換はどちらが速いですか?[閉まっている]

StackOverflow https://stackoverflow.com//questions/23044498

質問

最近、jruby でアプリケーションをコーディングし、そこから .jar ファイルを作成し、同じものを Tomcat にデプロイしました。jruby に関する記事「Jruby - Java のスケーラビリティと Ruby の容易さ」も読みました。

ここで知りたいのは、jruby でこのようなコーディングを行うと、Java で直接コーディングするのと同じスケーラビリティとパフォーマンスが得られるかということです。

これと同じように、ruby 拡張機能を使用して Ruby で C コードを実行すると、C で直接コーディングした場合と同じパフォーマンスが得られます。

ありがとう

役に立ちましたか?

解決

(免責事項:これは完全な答えではないかもしれませんが、コメントするには長すぎました)

特に JRuby の実装についてはほとんど経験がありませんが、JVM 上に実装された動的言語には、Java で直接コーディングした場合に比べて速度の点で限界があります。

私が理解しているところによると、これはクライアント言語実装のトレードオフから来ています (JRuby, クロージュア, ジトン, 、など)は、ホスト プラットフォーム上で内部動作を「シミュレート」するために作成する必要があります(この場合、 JVM)。おそらく、最も一般的なシナリオでは、JVM の HotSpot 最適化が開始されるため、パフォーマンスの差はそれほど大きくありません。しかし、最終的に Java のようなコード パフォーマンスを実現することになると、これをバイパスするために言語実装の詳細を検討する必要があるかもしれません。その制限の一部。

の場合、 ルビー の拡張子 C, 、実際に実行しているのは、もともとコーディングされていたネイティブコード(機械語)です。 C, ですが、Ruby コードから呼び出すことができます。走行時 JRuby コード、プログラミングしている言語は ルビー, 、これは次のようにコンパイルする必要があります ジャワ 上で実行されるバイトコード JVM, 、それをネイティブ オペレーティング システムでの操作に変換します。アナログなもの ルビー/C この場合はそうなるだろう JRuby/Java, 、それは誰かを呼ぶことになるでしょう ジャワ もともと書かれていたコード ジャワ あなたからの JRuby プログラム。

編集

これ 議論 では、上で挙げたいくつかの点について言及し、その他の興味深い点についてさらに詳しく説明します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top