JavaのJITとは何ですか? –Javaの基礎を理解する



Just-In-Timeコンパイラは、Javaランタイム環境の不可欠な部分の1つです。 JavaでのJITに関するこの記事では、このコンパイラがJavaアプリケーションのパフォーマンスをどのように向上させるかについて説明します。

システムはバイナリコードのみを理解するため、すべてのプログラミング言語はコンパイラを使用して高級言語コードをマシンレベルのバイナリコードに変換します。プログラミング言語の種類によって、コンパイラは異なります。今話している 、それはと呼ばれるこの驚くべきコンパイラを使用します JavaのJIT(ジャストインタイム) 。このブログでは、JITJavaコンパイラについてすべて説明します。

この記事で取り上げるトピックは次のとおりです。





それでは、始めましょう!

Java JITコンパイラ–概要

ザ・ ジャストインタイムコンパイラ の不可欠な部分の1つです 。主に、実行時または実行時のJavaベースのアプリケーションのパフォーマンスの最適化を担当します。一般に、コンパイラの主なモットーは、エンドユーザーとアプリケーション開発者のアプリケーションのパフォーマンスを向上させることです。



JavaでのJITの詳細

  • バイトコードは、JavaのWORA(1回書き込み、どこでも実行)環境の最大の可能性です。の速度 Javaアプリケーション バイトコードがネイティブマシンコードに変換される方法によって異なります。バイトコードは、ネイティブコードに解釈またはコンパイルするか、プロセッサで直接実行することができます。ただし、バイトコードが解釈されると、アプリケーションの速度に直接影響します。

  • パフォーマンスを高速化するために、JITコンパイラは実行時にJVMと通信して、バイトコードシーケンスをネイティブマシンコードにコンパイルします。基本的に、JITコンパイラーを使用する場合、JVMインタープリターと比較すると、ネイティブコードはハードウェアによって簡単に実行されます。そうすることで、実行速度が大幅に向上します。

  • JITコンパイラは、一連のバイトコードをコンパイルするときに、データ分析、スタック操作からレジスタ操作への変換、部分式の削除など、特定の最適化も実行します。 実行とパフォーマンスに関しては非常に効率的です。



JITコンパイラの基礎を理解したところで、さらに進んでその動作を理解しましょう。

JavaでのJITコンパイラの動作

JITコンパイラは、実行時にJavaアプリケーションのパフォーマンスを高速化します。 Javaは 、それはで構成されています 。基本的に、プラットフォームに依存しないバイトコードを構成します。多様なアーキテクチャ間でJVMによって実行されます。

ワークフロー:

次の図は、Javaランタイム環境でコンパイルの実際の動作がどのように行われるかを示しています。

JITコンパイラ-JavaのJIT-Edureka

UbuntuにHadoopをインストールする方法

  1. あなたがコーディングするとき 、JREはjavacコンパイラを使用して高レベルをコンパイルします ソースコードからバイトコード 。この後、JVMは実行時にバイトコードをロードし、インタープリターを使用してさらに実行するためにマシンレベルのバイナリコードに変換します。

  2. すでに上で述べたように、Javaバイトコードの解釈は、ネイティブアプリケーションと比較した場合にパフォーマンスを低下させます。ここで、JITコンパイラは、バイトコードをネイティブマシンコードにコンパイルすることでパフォーマンスを向上させます。 「ジャストインタイム」 走る。

  3. JITコンパイラは、Javaでメソッドが呼び出されると、デフォルトでアクティブ化および有効化されます。メソッドがコンパイルされると、Java仮想マシンはメソッドのコンパイル済みコードを解釈せずに直接呼び出します。したがって、多くのメモリ使用量とプロセッサ時間を必要としません。これにより、基本的にJava NativeApplicationのパフォーマンスが高速化されます。

だから、それはそれがどのように機能するかです。それでは、この記事をさらに深く掘り下げて、JavaでのJITコンパイラのセキュリティ面を理解しましょう。

JavaでのJITのセキュリティ面

JITコンパイラによるバイトコードのマシンコードへのコンパイルは、メモリ内で直接行われます。つまり、コンパイラはマシンコードをメモリに直接フィードして実行します。この場合、クラスファイルを呼び出して実行する前に、マシンコードをディスクに保存しません。基本的に、メモリは実行可能としてマークする必要があります。セキュリティ上の問題から、これはコードがメモリに書き込まれた後に完了する必要があります。また、実行可能メモリはセキュリティホールであるため、読み取り専用としてマークする必要があります。これについてもっと知りたい場合は、この記事をチェックしてください。 JITコンパイラのセキュリティ面

それでは、さらに進んで、の長所と短所を知ってみましょう。 ジャストインタイムコンパイラ Javaで。

JavaにおけるJITの長所と短所

長所

  1. 何年も前に作成したJavaコードは、今日でも高速に実行され、Javaプログラムのパフォーマンスが向上します。

  2. ネイティブイメージは、起動アクティビティがなく、必要なメモリが少ないため、実行速度も速くなります。

短所:

  1. の複雑さを増します 。

    Javaでオブジェクトの配列を作成できますか
  2. コードが少ないプログラムは、ジャストインタイムコンパイルではメリットがありません。

これで、JavaでのJITに関するこの記事は終わりです。参考になれば幸いです。

チェックしてください 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。私たちはあなたの旅のあらゆるステップを支援するためにここにいます。このJavaインタビューの質問に加えて、Java開発者になりたい学生や専門家向けに設計されたカリキュラムを考え出します。

質問がありますか?この「JITinJava」の記事のコメントセクションにその旨を記載してください。できるだけ早くご連絡いたします。