HotSpot
| 開発元 | オラクル、サン・マイクロシステムズ、Longview Technologies, LLC |
|---|---|
| プログラミング 言語 | C++[1], アセンブリ |
| 対応OS | クロスプラットフォーム |
| 種別 | 実行時コンパイラ |
| ライセンス | GNU General Public License, version 2, with the Classpath Exception[2] |
| 公式サイト |
openjdk |
HotSpot(ホットスポット)はオラクル(旧サン・マイクロシステムズ)が提供しているJava仮想マシンで使われている高速化のための技術の名称。デスクトップ向け・サーバ向け・組み込み環境向け (Java ME[3]) がある。性能を改善するためにジャストインタイムコンパイル方式、適応的最適化 (adaptive optimization) などの技術を使っている。
歴史
HotSpotは、1999年4月27日に最初にリリースされ、1994年に設立された小さな新興企業Animorphicの名前で事業経営中だった有限会社 Longview Technologies によって独自に開発された。1997年には有限会社 Lonview Technologies(Animorphicの名前で事業経営中)はサンに買収された。当初Java 1.2でアドオンとして利用可能だったHotSpotはJava 1.3からサンの標準のJava仮想マシンとなった[4][5]。
その名前はJavaバイトコードを実行する際の挙動に由来する。HotSpotは頻繁に繰り返し実行されるコード領域すなわち「ホットスポット」[注釈 1]を絶えず解析する。これらは、性能に重大な影響を与えるコードを標的として最適化を重点的に行い、その他のコードには最小限の最適化で済ませることでオーバーヘッドを小さくし、高性能な実行を実現する。HotSpotはJava仮想マシンの中でも最高性能が得られると極めて高い評価を得ている。実際にはまれだが、理論上はJava仮想マシンの adaptive optimization がC++あるいはアセンブリ言語を用いた手動最適化に勝る場合もある[6]。
設計
サンのJREによれば、HotSpotはクライアント版およびサーバ版と呼ばれる二つの互換実装からなる。クライアント版は必要不可欠なクラスやメソッドのみを素速くロードしコンパイルするようチューニングする。サーバ版は、よりゆっくりロードを行うが、より高性能な高度に最適化されたJITコンパイル結果を産出することに、より尽力する。
ライセンス
脚注
注釈
出典
- ↑ Bjarne Stroustrup. “C++ Applications”. 2019年6月14日閲覧。
- ↑ “OpenJDK: GPLv2 + Classpath Exception”. openjdk.org. 2025年9月21日閲覧。
- ↑ 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用)