(1)-Xms20Mhtml
表示設置堆容量的最小值爲20M,必須以M爲單位佈局
(2)-Xmx20M學習
表示設置堆容量的最大值爲20M,必須以M爲單位。將-Xmx和-Xms設置爲同樣能夠避免堆自動擴展。大的項目-Xmx和-Xms通常都要設置到10G、20G甚至還要高.net
(3)-verbose:gchtm
表示輸出虛擬機中GC的詳細狀況對象
(4)-Xss128kblog
表示能夠設置虛擬機棧的大小爲128k內存
(5)-Xoss128kget
表示設置本地方法棧的大小爲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
更改自旋鎖的自旋次數,使用這個參數必須先開啓自旋鎖