JVM的參數以及作用詳解


-XX:+PrintCommandLineFlags   打印出JVM運行時的各種的各項配置參數

-verbose:gc   發生GC時,打印出GC日志
-XX:+printGC 發生GC時,打印出GC日志

-XX:+PrintGCDetails 打印GC的詳細日志,並且在程序運行結束是會打印出JVM的內存占用情況

-XX:+PrintGCDateStamps 打印GC發生的時間

-XX:+PrintGCTimeStamps   打印GC發生的時間,相對JVM啟動的時間

-Xloggc:d:\\gc.log gc日式默認是打印在控制台,添加這個參數可以指定GC日志的輸出位置,指定后控制台就無法查看GC日志了

-XX:+PrintHeapAtGC 每次一次GC后,都打印堆信息 

-XX:+TraceClassLoading 監控類的加載

-Xmx 指定最大堆內存

–Xms  指定最小堆內存

-Xmn 設置新生代大小
-XX:NewRatio 新生代(eden+2*s)和老年代(不包含永久區)的比值 4 表示 新生代:老年代=1:4,即年輕代占堆的1/5
-XX:SurvivorRatio 設置兩個Survivor區和eden的比 8表示 兩個Survivor :eden=2:8,即一個Survivor占年輕代的1/10

-XX:+HeapDumpOnOutOfMemoryError OOM時導出堆到文件
-XX:HeapDumpPath=d:/a.dump 導出OOM的路徑

-XX:OnOutOfMemoryError 在OOM時,執行一個腳本"-XX:OnOutOfMemoryError=D:/tools/jdk1.7_40/bin/printstack.bat %p“當程序OOM時,在D:/a.txt中將會生成線程的dump可以在OOM時,發送郵件,甚至是重啟程序

XX:PermSize 設置永久區的初始空間
-XX:MaxPermSize 設置永久區最大空間

-Xss 指定棧的大小

-XX:+UseSerialGC  新生代、老年代使用串行回收,新生代復制算法,老年代標記-壓縮

-XX:+UseParNewGC 新生代並行,老年代串行,Serial收集器新生代的並行版本,復制算法,多線程,需要多核支持
-XX:ParallelGCThreads 限制線程數量

-XX:MaxGCPauseMills 最大停頓時間,單位毫秒,GC盡力保證回收時間不超過設定值
-XX:GCTimeRatio 0-100的取值范圍,垃圾收集時間占總時間的比 默認99,即最大允許1%時間做GC
這兩個參數是矛盾的。因為停頓時間和吞吐量不可能同時調優

-XX:+UseConcMarkSweepGC Concurrent Mark Sweep 並發標記清除,老年代收集器(新生代使用ParNew)
-XX:CMSInitiatingOccupancyFraction設置觸發GC的閾值

-XX:+ UseCMSCompactAtFullCollection Full GC后,進行一次整理,整理過程是獨占的,會引起停頓時間變長
-XX:+CMSFullGCsBeforeCompaction 設置進行幾次Full GC后,進行一次碎片整理
-XX:ParallelCMSThreads 設定CMS的線程數量
-XX:+CMSClassUnloadingEnabled:允許對類元數據進行回收
-XX:UseCMSInitiatingOccupancyOnly:表示只在到達閥值的時候,才進行CMS回收

-XX:PretenureSizeThreshold參數,對象的判定標准,大於這個值的對象直接分配在老年代,默認是0,所有對象都優先在eden區上分配,PretenureSizeThreshold參數只對Serial和ParNew兩款收集器有效,Parallel Scavenge收集器不認識這個參數,Parallel                          Scavenge收集器一般並不需要設置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM