HotSpot
HotSpot(ホットスポット)はオラクル(旧サン・マイクロシステムズ)が提供しているJava仮想マシンで使われている高速化のための技術の名称。デスクトップ向け・サーバ向け・組み込み環境向け (Java ME[2]) がある。性能を改善するためにジャストインタイムコンパイル方式、適応的最適化 (adaptive optimization) などの技術を使っている。
| 開発元 | オラクル、サン・マイクロシステムズ、Longview Technologies, LLC |
|---|---|
| 最新版 |
1.6
|
| プログラミング 言語 | C++[1], アセンブリ |
| 対応OS | クロスプラットフォーム |
| 種別 | Java仮想マシン |
| ライセンス | GNU General Public License |
| 公式サイト | http://java.sun.com/products/hotspot/ |
歴史
HotSpotは、1999年4月27日に最初にリリースされ、1994年に設立された小さな新興企業Animorphicの名前で事業経営中だった有限会社 Longview Technologies によって独自に開発された。1997年には有限会社 Lonview Technologies(Animorphicの名前で事業経営中)はサンに買収された。当初Java 1.2でアドオンとして利用可能だったHotSpotはJava 1.3からサンの標準のJava仮想マシンとなった[3][4]。
その名前はJavaバイトコードを実行する際の挙動に由来する。HotSpotは頻繁に繰り返し実行されるコード領域すなわち「ホットスポット」[注釈 1]を絶えず解析する。これらは、性能に重大な影響を与えるコードを標的として最適化を重点的に行い、その他のコードには最小限の最適化で済ませることでオーバーヘッドを小さくし、高性能な実行を実現する。HotSpotはJava仮想マシンの中でも最高性能が得られると極めて高い評価を得ている。実際にはまれだが、理論上はJava仮想マシンの adaptive optimization がC++あるいはアセンブリ言語を用いた手動最適化に勝る場合もある[5]。
設計
サンのJREによれば、HotSpotはクライアント版およびサーバ版と呼ばれる二つの互換実装からなる。クライアント版は必要不可欠なクラスやメソッドのみを素速くロードしコンパイルするようチューニングする。サーバ版は、よりゆっくりロードを行うが、より高性能な高度に最適化されたJITコンパイル結果を産出することに、より尽力する。
脚注
注釈
- 英: hot spot、「人気のある場所」の意味。直訳すると「熱い場所」。
出典
- Bjarne Stroustrup. “C++ Applications”. 2019年6月14日閲覧。
- Java ME テクノロジー - CDC
- “SUN MICROSYSTEMS RELEASES FASTEST CLIENT-SIDE JAVA PLATFORM TO DATE”. Sun Microsystems. 2008年5月6日時点のオリジナルよりアーカイブ。2006年3月7日閲覧。
- Java HotSpot(TM) Client Virtual Machine および Java HotSpot(TM) Server Virtual Machine
- “Performance of Java versus C++”. 2019年6月14日閲覧。
関連項目
- Java仮想マシンの一覧 (en:List of Java virtual machines)
外部リンク
- Java SE HotSpot at a Glance(英語) - Oracle
- Java HotSpot VM Options(英語) - Oracle
- 和訳(日本語)
- Java HotSpot VM オプション(日本語) - Java 2 SDK 開発ガイド (Solaris 編)(注意: 2010年作成) - Oracle
- HotSpot VM FAQ(英語) - Oracle
- The History of the Strongtalk Project(英語)
- SUN ANNOUNCES AVAILABILITY OF THE JAVA HOTSPOT PERFORMANCE ENGINE - ウェイバックマシン(2006年12月18日アーカイブ分)(英語)
- Java仮想マシン(JVM)のチューニング(日本語) - Oracle (Oracle 12cリリース1用)