ガベージファーストコレクター(G1)は、Oracle HotSpot Java仮想マシン(JVM)6で導入され、7 Update 4からサポートされているガベージコレクション アルゴリズムです。これは、JVM 7でコンカレントマークスイープコレクター(CMS)を置き換えることが計画され、Java 9でデフォルトになりました。[1]
ガベージコレクター
ガベージファースト (G1) コレクターは、大容量メモリを搭載したマルチプロセッサを対象としたサーバースタイルのガベージコレクターで、高いスループットを実現しながら、ソフトリアルタイム目標を高い確率で満たします。[2] G1 は、ライブデータの量が最も少ない領域、つまり「ガベージファースト」を優先的に収集します。[3] G1 は、CMS の長期的な代替品です。グローバルマーキングなどのヒープ全体の操作は、ヒープまたはライブデータのサイズに比例した中断を防ぐために、アプリケーションスレッドと同時に実行されます。同時マーキングにより、コレクションの完全性が確保されるとともに、圧縮退避による再利用に適した領域が特定されます。この退避は、マルチプロセッサ上で並列に実行されるため、一時停止時間が短縮され、スループットが向上します。
G1はJava SE 6 Update 14で実験的なオプションとして初めて導入され、 [4]次の2つのコマンドラインパラメータで有効にできます。-XX:+UnlockExperimentalVMOptionsおよび-XX:+UseG1GCJDK 7では、Hotspot JVMでCMSをG1に置き換えることが計画されていました。 CMSとG1には2つの大きな違いがあります。 1つ目は、G1が圧縮コレクターであることです。[5] G1は、割り当てに細粒度の空きリストを使用する必要を完全に回避できるほど十分に圧縮するため、コレクターの一部が大幅に簡素化され、潜在的な断片化の問題がほとんどなくなります。 圧縮に加えて、G1はCMSコレクターよりも予測可能なガベージコレクションの一時停止を提供し、ユーザーが希望する一時停止ターゲットを設定できます。
Java 9では、Googleが有名なCMSを標準として提案し、使用している修正されたCMSの方がG1よりもパフォーマンスが優れていると主張したにもかかわらず、G1がデフォルトのガベージコレクターになりました。[6 ] [ 1 ] [7]それ以来、OracleはG1のスループット、レイテンシ、メモリフットプリントを大幅に改善しました。[8]
関連製品
ガベージコレクションを使用してもリアルタイム動作を保証するには、SunのJava RTS [9]やIBMのWebSphere RT [10]に付属しているようなリアルタイムガベージコレクターが必要です。
参照
参考文献
- ^ ab "JEP 248: G1 をデフォルトのガベージ コレクターにする". openjdk.java.net . 2019 年 12 月 9 日閲覧。
- ^ Detlefs, David; Flood, Christine; Heller, Steve; Printezis, Tony ( 2004). 「ガベージファースト ガベージコレクション」第4 回国際メモリ管理シンポジウム議事録。pp. 37– 48。CiteSeerX 10.1.1.63.6386。doi : 10.1145 / 1029873.1029879。ISBN 1581139454. S2CID 3330886。
- ^ 「パート 1: G1 ガベージ コレクターの概要」。www.redhat.com。
- ^ 「G1: Java のガベージファースト ガベージ コレクター」。Dr Dobbs。
- ^ 「ガベージファーストコレクター」www.fasterj.com。
- ^ 「なぜ G1 が Java 9 のデフォルトのガベージ コレクターなのでしょうか?」
- ^ 「Java 9 の新しいガベージ コレクター: 何が変わるのか? 何が残るのか? - JAXenter」。jaxenter.com。2015 年 6 月 26 日。
- ^ Johansson, Stefan (2021年10月11日). 「G1: To Infinity and Beyond」. inside.java .
- ^ http://www.oracle.com/technetwork/articles/javase/index-138577.html リアルタイム Java テクノロジ入門: パート 2、ガベージ コレクションと Sun Java リアルタイム システム (Java RTS)
- ^ http://www.ibm.com/developerworks/java/library/j-rtj4/index.html?S_TACT=105AGX02&S_CMP=EDU リアルタイム ガベージ コレクション
外部リンク
- ガベージファーストガベージコレクション
- ガベージファースト ガベージコレクターはどのように機能しますか?
- JAVA ガベージコレクションハンドブック G1 – Garbage First 2017-06-05 にWayback Machineでアーカイブされました
- G1: すべてを支配するガベージコレクター
- 1. ガベージファーストの概要
