http://openjdk.java.net/jeps/173 をテキトーに訳した。
JEP 173: Retire Some Rarely-Used GC Combinations
Owner Bengt Rutisson Created 2012/11/26 20:00 Updated 2014/07/10 20:22 Type Feature Status Completed Component hotspot / gc Scope JDK Discussion hotspot dash gc dash dev at openjdk dot java dot net Effort XS Duration XS Priority 4 Reviewed by Jesper Wilhelmsson, John Coomes, Jon Masamitsu Endorsed by Mikael Vidstedt Release 8 Issue 8046163
Summary
あまり使用されない三つのGCの組み合わせを、現行の開発・メンテナンス・テストのコストを下げるために削除します。
Goals
現在では、将来のサポートを確保するほど十分には使用されない、三つのGCの組み合わせが存在します。
これらの組み合わせはGCのコードベースに特別の複雑さをもたらしており、ユーザに価値を提供するのに貴重なテストリソースを消費しています。GCコードベースを単純化してテストと持続可能性(sustainability)を改善するために、我々は三つの組み合わせの削除を提案します。
Motivation
すべての既存のGCの組み合わせを維持し続けることには多大なコストが必要です。それらすべてをテストするリソースは十分に存在しません。GCコードベースの複雑さのために、新機能は実装とテストに長い時間を要します。シンプルさと安定性、それと高速なコードベースへ向かう第一歩として、我々はあまり使用されない組み合わせの削除を要求します。
Description
DefNew + CMSのParNew + SerialOldの組み合わせおよびIncremental Mode of CMSは非推奨になります(警告メッセージが出力されます)。このGCの組み合わせは将来のメジャーリリースで削除される、と解釈されます。
コマンドラインにおけるフラグの以下の組み合わせが影響を受けます。
GC設定フラグ -XX:-UseParNewGC -XX:+UseConcMarkSweepGC DefNew + CMS -XX:+UseParNewGC ParNew + SerialOld -Xincgc ParNew + iCMS -XX:+CMSIncrementalMode -XX:+UseConcMarkSweepGC ParNew + iCMS -XX:+CMSIncrementalMode -XX:+UseConcMarkSweepGC -XX:-UseParNewGC DefNew + iCMS
Alternatives
未テストのGCの組み合わせサポートの続行。
Testing
Risks and Assumptions
GCの組み合わせに関する三つの基本的な仮定が問題点として挙げられます。
- 現在Incremental CMSを使用している多くのユーザは"normal" CMSに切り替えることで利益を得られる。
- DefNew + CMSを使用しているユーザは代わりにParNew + CMSを使用することで利益を得られる。
- ParNew + SerialOldを使用しているユーザは代わりにParallelScavenge + SerialOldを使用することで利益を得られる。
リスクとは、これらの仮定の一つ以上が説得力を持たない場合です。我々がいま言える範囲においてはリスクは小さいです。