Loading article…
| 最終リリース | 1.0.0 ベータ版 / 2002 年 7 月 15 日 |
|---|---|
| タイプ | Java仮想マシン |
| ライセンス | ライセンス |
| Webサイト | ジュピター |
Jupiter JVMはオープンソースの Java仮想マシン[1]であり、モジュール性と拡張性を念頭に置いて修士論文として開発されました。BoehmガベージコレクターとGNU Classpathを使用しています。その設計の主な側面は次のように簡略化できます。
- メモリの局所性- オブジェクトは、局所性をほとんど考慮せずにヒープ上に割り当てられます。このアプローチは、単一プロセッサまたは小規模 SMP には適しているかもしれませんが、リモート メモリ アクセスがローカル メモリ アクセスよりも 1 桁または 2 桁遅いワークステーションのクラスターではうまく機能しない可能性があります。
- 並列ガベージ コレクション - ガベージ コレクションは、アプリケーションの時間をかなり消費する可能性があります。通常、JVM は「ストップ ザ ワールド」ガベージ コレクターを採用しており、ガベージ コレクション中はプログラム スレッドが停止します。この方法は、プロセッサの数が多い場合は 2 つの理由から機能しません。まず、プロセッサの数が多いと「ストップ ザ ワールド」のコストがかなり高くなります。次に、ガベージを収集するために単一のスレッドを使用すると、どのアプリケーションでも許容できないほど大きなシーケンシャル部分が発生します。
- メモリ一貫性モデル- 多くのプロセッサでスケーリング パフォーマンスを実現するには、「緩和された」 Java メモリ モデルを活用することが重要です。現在、JMM を忠実に実装している JVM はなく、実際には多くの JVM が JMM を誤って実装しているため、一貫性が失われ、最適化の機会が失われています。JMM の仕様も 2007 年に改訂されました。
- 効率的なスレッドと同期- 多くのプロセッサでは、効率的に拡張できるスレッド サポートと同期メカニズムを提供することが重要です。
参照
参考文献
- ^ 「The Jupiter Project」www.eecg.toronto.edu . 2024年11月19日閲覧。
外部リンク
- 公式サイト
