web-dev-qa-db-ja.com

-XX:NewRatioおよび-XX:OldSize JVMフラグの意味は何ですか?

Javaアプリを次のコマンドラインで起動しています:

Java -XX:+PrintCommandLineFlags -verbose:gc -XX:+PrintGCDetails \
     -XX:+UseConcMarkSweepGC -jar start.jar

JVMは次のオプションを有効にします。

-XX:MaxNewSize=87244800 -XX:MaxTenuringThreshold=4 -XX:NewRatio=7
-XX:NewSize=21811200 -XX:OldPLABSize=16 -XX:OldSize=65433600
-XX:+PrintCommandLineFlags -XX:+PrintGC -XX:+PrintGCDetails
-XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseParNewGC

誰か私にNewRatioとOldSizeの意味を説明できますか?特にOldSizeは、古い世代の初期サイズですか?

18
dacanalr

NewRatioは、古い世代と若い世代の比率です(たとえば、値2は古いサイズの最大サイズが若いサイズの最大サイズの2倍になることを意味します。つまり、若いサイズはヒープの1/3まで取得できます)。

OldSizeは文書化されたオプションの1つではありませんが、保有期間のサイズだと思います http://www.Oracle.com/technetwork/Java/javase/tech/vmoptions-jsp-140102.html

18
Peter Lawrey

NewRatioはすでに十分に説明されているので、OldSizeを使用すると次のようになります。

ここで、OldSize =>保有世代のデフォルトサイズ。これは、エルゴノミクスが機能するまでの期間のデフォルトのサイズです。

1
Khanna111