1. 程式人生 > >jvm常用引數的設定和含義:-Xmx,-Xmn,-Xss,-XX:+HeapDumpOnOutOfMemoryError, -verbose:gc

jvm常用引數的設定和含義:-Xmx,-Xmn,-Xss,-XX:+HeapDumpOnOutOfMemoryError, -verbose:gc

1.設定堆的最大和最小值
-Xmx20M(最大值) ,-Xms20M(最小值)。

2.設定年輕代的大小
-Xmn2g:設定年輕代大小為2G。整個JVM記憶體大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代後,將會減小年老代大小。此值對系統性能影響較大,Sun官方推薦配置為整個堆的3/8。

3.設定棧的大小
-Xss128k: 設定每個執行緒的堆疊大小。JDK5.0以後每個執行緒堆疊大小為1M,以前每個執行緒堆疊大小為256K。更具應用的執行緒所需記憶體大小進行調整。在相同物理內 存下,減小這個值能生成更多的執行緒。但是作業系統對一個程序內的執行緒數還是有限制的,不能無限生成,經驗值在3000~5000左右。

4.設定出現記憶體溢位時,記憶體快照的儲存路徑
-XX:+HeapDumpOnOutOfMemoryError
該配置會把快照儲存在使用者目錄或者tomcat目錄下,也可以通過 -XX:HeapDumpPath=/tmp/heapdump.hprof 來顯示指定路徑

5. -verbose:gc
-verbose:gc 中引數-verbose:gc 表示輸出虛擬機器中GC的詳細情況.

使用後輸出如下:

[Full GC 168K->97K(1984K), 0.0253873 secs]

-verbose:gc -Xms20M -Xmx20M -Xmn10M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\\dump.hprof