Javaコードが速く実行される秘密 - JITコンパイラ入門
昔Javaは遅いと言われていたことを聞いたことがある人もいるかもしれません。これを言い換えると今はJavaは速くなっているということですが、どうして速くなったのでしょうか。Javaでは、マイクロベンチマークでの速度計測に意味はないと言われます。それはどうしてでしょうか。その答えは、JITコンパイル(Just-In-Timeコンパイル)にあります。JITコンパイルとはメソッドやその一部を機械語にコンパイルすることで、JITコンパイルを実行するものがJITコンパイラです。実行速度向上を目的にかなり前のバージョンからJVM(Java仮想マシン)にはJITコンパイラが搭載されています。そして、JITコンパイラについて知るというのは、知的好奇心を満たすとても楽しい活動です。このセッションでは、JITコンパイラの深淵の最初の階層に入ります。
Outline/Structure of the Standard
- javacとバイトコード
- インタプリタ実行と実行速度
- JITコンパイルの利点と仕組み
- JITコンパイルのトレードオフ
- HotSpot VMでの2つのJITコンパイラ
- 階層型コンパイルと最適化レベル
- HSDISでの逆アセンブル
- JITWatchの利用
- JITコンパイルのプロセスとIR
- IRグラフを見る
- JITコンパイラのアーキテクチャ
- JITコンパイルのライフサイクル、最適化と脱最適化
Learning Outcome
- JVMでのJITコンパイラの役割、仕組みが理解し、Javaアプリケーションのパフォーマンス理解、改善の第一歩を踏み出せる
- HSDIS、JITWatch、Ideal Graph VisualizerといったJITコンパイル関連のツールを使い始められる
- JITコンパイラの一般的なアーキテクチャや、IRとIRグラフについての知識を得られる
Target Audience
Javaバイトコードという言葉を聞いたことがある方