2011-07-28 49 views
16

我開始我用下面的命令行Java應用程序:-XX:NewRatio和-XX:OldSize JVM標誌的含義是什麼?

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是終身代的初始大小?

回答

14

NewRatio是老一代與年輕一代的比例(例如,值2表示老的最大尺寸將是年輕人的最大尺寸的兩倍,即年輕人可以達到堆的1/3)。

的OldSize不是的記錄選項之一,但我認爲它是終身空間http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

+1

該文檔顯示「新舊版本大小的比率,默認值爲2」。那麼2是否意味着新的基因尺寸是舊基因的兩倍? – DeepNightTwo

+0

@DeepNightTwo好點。我不確定。我將不得不運行它並檢查。我認爲這是另一回事。 –

+3

我已經使用JVisualVM的VisualGC插件驗證了'-XX:NewRatio'的較高值會導致較大的「舊」代大小,因此比率在分子中必須具有「舊」,而不是分母。 (使用Sun HotSpot JVM版本1.6.0_45進行測試。) –

1

由於NewRatio已經是很好的解釋的大小,下列情況應OldSize幫助。

這裏,OldSize => tenured generation的默認大小。這是人體工程學開始工作之前的默認尺寸。

+0

是否意味着尺寸會從那裏增長?你有沒有可以參考的與OldSize有關的鏈接?謝謝 –

+0

不記得它是否只是增長或減少。很久以前了。抱歉。 – Khanna111