インタプリタとJITコンパイラの違いは何ですか

目次:

Anonim

NS 主な違い インタプリタとJITコンパイラの違いは インタプリタはソースコードを1行ずつネイティブマシンコードに変換するソフトウェアですが、JITコンパイラは実行時にバイトコードをネイティブマシンコードにコンパイルすることでJavaプログラムのパフォーマンスを向上させるJVMのコンポーネントです。

インタプリタは、プログラマが記述した命令またはスクリプトを、CPUの特定のハードウェアプラットフォームに一致する対応するマシンコードに変換するプログラムです。一方、JITは、実行時にバイトコードをマシンコードに変換するコンパイラです。 CPU時間とメモリが必要です。

バイトコード、インタプリタ、JITコンパイラ、JVM、マシンコード

通訳とは

プログラマーは、高級プログラミング言語を使用してコンピュータープログラムを作成します。彼はこれらのプログラムの構文を簡単に読んで理解することができます。ただし、CPUは、プログラムで定義されたタスクを実行するためにこれらのプログラムを理解しません。したがって、高レベルのソースコードをマシンが理解できるマシンコードに変換する必要があります。

図1:Pythonインタープリター

インタプリタは、上記の変換を行うソフトウェアです。プログラムのソースコードを1行ずつ機械語に変換します。一度に1行ずつチェックするため、スキャン時間が短くなります。ただし、プログラムの全体的な実行時間は長くなります。したがって、Python、Perl、Ruby、PHPなどのインタプリタベースの言語は低速な言語です。

JITコンパイラとは

javacコンパイラは、Javaソースコードをバイトコードに変換します。 Java仮想マシン(JVM)は、このバイトコードを実行できます。 CPUがプログラムで定義されたタスクを実行できるように、そのバイトコードを同等のマシンコードに変換します。 JITはJustinTimeコンパイラの略です。これはJVMの不可欠なコンポーネントです。さらに、JVMをサポートしてJavaバイトコードをより高速に実行し、Javaプログラムのパフォーマンスを向上させます。

図2:Javaバイトコード

JVMがインストールされているすべてのコンピューターは、バイトコードを実行できます。つまり、JVMを備えたすべてのプラットフォームでバイトコードをインストールできます。これにより、Javaプラットフォームに依存しないプログラミング言語になります。

インタプリタとJITコンパイラの違い

意味

インタプリタは、高級プログラミング言語またはスクリプト言語で記述された命令を機械語プログラムに変換するソフトウェアです。 JITコンパイラは、実行時のJavaアプリケーションのパフォーマンスを向上させるJavaランタイム環境(JVMはJREの一部)のコンポーネントです。これらの定義は、インタープリターとJITコンパイラーの主な違いを説明しています。

機能性

インタプリタは、ソースコードを1行ずつマシンコードに変換します。 JITコンパイラは、実行時にバイトコードをマシンコードにコンパイルすることにより、バイトコードをより高速に実行するのに役立ちます。

実行速度

インタプリタの実行速度は、JITコンパイラよりも低速です。これは、インタープリターとJITコンパイラーの違いでもあります。

関連する言語

インタプリタとJITコンパイラのもう1つの違いは、PHP、Perl、Python、Rubyがインタプリタベースの言語であるのに対し、JavaはJITコンパイラを使用することです。

結論

インタプリタとJITコンパイラの基本的な違いは、インタプリタはソースコードを1行ずつネイティブマシンコードに変換するソフトウェアであるのに対し、JITコンパイラは実行時にバイトコードをネイティブマシンコードにコンパイルすることでJavaプログラムのパフォーマンスを向上させるJVMのコンポーネントであるということです。時間。

リファレンス:

1.「通訳(コンピューティング)」。ウィキペディア、ウィキメディア財団、2018年9月28日、こちらから入手可能2。 「JITコンパイラーの概要」、IBM Knowledge Center、こちらから入手可能3。アブーライト、モハメッド。 「JITコンパイラ(ジャストインタイムコンパイラ)を理解する。」 Aboullaite Med、2017年8月31日、こちらから入手できます。

画像提供:

1.「Windows7Python Shell Interpreterプロンプト2016年5月11日」Annakoppad著– Commons Wikimedia2による自作(CC BY-SA 4.0)。 Lobohによる「Java-program-execution」– Commons Wikimediaによる自作(CC BY-SA 3.0)

インタプリタとJITコンパイラの違いは何ですか