常用JVM引數

z1340954953發表於2018-04-18
(1)-Xms20M
表示設定JVM啟動記憶體的最小值為20M,必須以M為單位
(2)-Xmx20M
表示設定JVM啟動記憶體的最大值為20M,必須以M為單位。將-Xmx和-Xms設定為一樣可以避免JVM記憶體自動擴充套件。大的專案-Xmx和-Xms一般都要設定到10G、20G甚至還要高
(3)-verbose:gc
表示輸出虛擬機器中GC的詳細情況
(4)-Xss128k
表示可以設定虛擬機器棧的大小為128k
(5)-Xoss128k
表示設定本地方法棧的大小為128k。不過HotSpot並不區分虛擬機器棧和本地方法棧,因此對於HotSpot來說這個引數是無效的
(6)-XX:PermSize=10M
表示JVM初始分配的永久代的容量,必須以M為單位
(7)-XX:MaxPermSize=10M
表示JVM允許分配的永久代的最大容量,必須以M為單位,大部分情況下這個引數預設為64M
(8)-Xnoclassgc
表示關閉JVM對類的垃圾回收
(9)-XX:+TraceClassLoading
表示檢視類的載入資訊
(10)-XX:+TraceClassUnLoading
表示檢視類的解除安裝資訊
(11)-XX:NewRatio=4
表示設定年輕代:老年代的大小比值為1:4,這意味著年輕代佔整個堆的1/5
(12)-XX:SurvivorRatio=8
表示設定2個Survivor區:1個Eden區的大小比值為2:8,這意味著Survivor區佔整個年輕代的1/5,這個引數預設為8
(13)-Xmn20M
表示設定年輕代的大小為20M
(14)-XX:+HeapDumpOnOutOfMemoryError
表示可以讓虛擬機器在出現記憶體溢位異常時Dump出當前的堆記憶體轉儲快照
(15)-XX:+UseG1GC
表示讓JVM使用G1垃圾收集器
(16)-XX:+PrintGCDetails
表示在控制檯上列印出GC具體細節
(17)-XX:+PrintGC
表示在控制檯上列印出GC資訊
(18)-XX:PretenureSizeThreshold=3145728
表示物件大於3145728(3M)時直接進入老年代分配,這裡只能以位元組作為單位
(19)-XX:MaxTenuringThreshold=1
表示物件年齡大於1,自動進入老年代
(20)-XX:CompileThreshold=1000
表示一個方法被呼叫1000次之後,會被認為是熱點程式碼,並觸發即時編譯
(21)-XX:+PrintHeapAtGC
表示可以看到每次GC前後堆記憶體佈局
(22)-XX:+PrintTLAB
表示可以看到TLAB的使用情況
(23)-XX:+UseSpining
開啟自旋鎖
(24)-XX:PreBlockSpin

更改自旋鎖的自旋次數,使用這個引數必須先開啟自旋鎖

轉載自:http://www.cnblogs.com/xrq730/p/4830692.html

相關文章