LoginSignup
3
2

More than 3 years have passed since last update.

HotSpot VMについて

Posted at

この記事は何?

Javaの内部とかに全然詳しくないプログラマがHotSpot VMについて調べた話

経緯

  • Stringの内部実装について調べる
  • @HotSpotIntrinsicCandidate <- なんだァ?てめェ……
  • HotSpot VMなるものが関係してるらしいので調べる

ざっくり言うと

HotSpot VM: HotSpotを実装したJVM
HotSpot: オラクルのJVM高速化記述

非常に粗くまとめると「よく使われる部分をキャッシュしておき、Javaの実行を早くする技術」のこと

経験的に少数の処理がよく呼び出され、そのほかはあんまり呼ばれない(例えば処理全体の2割が8割の実行時間を占める、など)。そのためその2割をキャッシュしておけば早くなる、と言うことらしい

もうちょっとだけ詳しく

Javaを実行する際、人間の書いたJavaコードはバイトコード(JVM語)に変換され、そのJVM語をJVMインタプリタが解釈してプログラムが実行される。
HotSpotがなければヒープ領域にあるJavaコードをJVMが逐一解釈して処理が実行されるが、これでは処理速度が遅いと言う問題がある。
HotSpotは同じバイトコードがJVMに何度も呼ばれた場合、その部分を機械語にコンパイルしてキャッシュしておく。こうして、プログラムの中のよく呼び出される部分の処理が高速化される。

詳細は以下の参考記事

https://www.atmarkit.co.jp/fjava/special/jvmhistory/jvmhistory01.html
https://www.atmarkit.co.jp/ait/articles/0403/11/news096.html
https://ja.wikipedia.org/wiki/HotSpot

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2