1. 程式人生 > >JVM實用引數(三)列印所有XX引數及值

JVM實用引數(三)列印所有XX引數及值

讓我們看下另外一個引數,事實上這個引數非常有用: -XX:+PrintCommandLineFlags。這個引數讓JVM打印出那些已經被使用者或者JVM設定過的詳細的XX引數的名稱和值。

換句話說,它列舉出 -XX:+PrintFlagsFinal的結果中第三列有":="的引數。以這種方式,我們可以用-XX:+PrintCommandLineFlags作為快捷方式來檢視修改過的引數。看下面的例子。

$ java -server -XX:+PrintCommandLineFlags Benchmark 
 -XX:InitialHeapSize=57505088 -XX:MaxHeapSize=920081408 -XX:ParallelGCThreads
=4 -XX:+PrintCommandLineFlags -XX:+UseParallelGC

現在如果我們每次啟動java 程式的時候設定 -XX:+PrintCommandLineFlags 並且輸出到日誌檔案上,這樣會記錄下我們設定的JVM 引數對應用程式效能的影響。類似於 -showversion(見 Part1),我建議 –XX:+PrintCommandLineFlags 這個引數應該總是設定在JVM啟動的配置項裡。因為你從不知道你什麼時候會需要這些資訊。

奇怪的是在這個例子中,通過 -XX:+PrintCommandLineFlags 列出堆的最大值會比通過-XX:+PrintFlagsFinal列舉出的相應值小一點。如果誰知道兩者之間不同的原因,請告訴我。