CMS がフル GC で機能する 4 つの高レベル フェーズがあります。
- イニシャルマーク :- ストップ・ザ・ワールド(STW)
- 同時マーキング :- 同時に実行
- 備考:- STW
- 同時スイープ:- 同時に実行
読んだ後、CMS の高度な理解を得ました
http://www.tikalk.com/java/garbage-collection-serial-vs-parallel-vs-concurrent-mark-sweep/およびhttps://plumbr.eu/handbook/garbage-collection-algorithms-implementations/concurrent -マークアンドスイープ
私の質問はInitial Mark
、なぜ最初のマークステージがフェーズの STW なのですか? これは和解の最終段階なので、STW として発言フェーズだけを使用することはできませんか。
同様にSweeping phase
、オブジェクトの物理的な場所の変更を意味する圧縮が必要になるため、STW ではないのはなぜですか。オブジェクトがアプリによって参照され、並行スレッドが物理的な場所を変更した場合、それは問題になりませんか?
ここに何かが欠けていることは知っていますが、それは何ですか?