下面來看一條常常設置設置jvm參數的命令(爲了方便讀就換行了):java
JAVA_OPTS="-server -Xms512M -Xmx512M -Xss256K -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:PermSize=64M -XX:MaxPermSize=128m"
如下兩條來自:https://www.oschina.net/translate/hotspot-jvm-options-java-examplesless
1) 以-X開頭的都是非標準的(這些參數並不能保證在全部的JVM上都被實現),並且若是在新版本有什麼改動也不會發布通知jvm
2)以-XX開頭的都是不穩定的而且不推薦在生產環境中使用。這些參數的改動也不會發布通知。spa
像我這種工做一兩年的菜鳥對ms和mx這些常常傻傻分不清,我就是試圖經過英文單詞聯繫記憶這些參數.net
個人記憶方式以下:線程
1)-Xms,ms看作的memory size的縮寫,就是初始堆大小code
2)Xmx , maximum memory size,x表明最大,因此就最大堆內存server
3)-Xss, ss就是stack size的縮寫,因此是用來表明線程棧的大小內存
4)-Xmn,n表明是new generation(新生代),因此mn就是用來指定新生代的堆內存空間大小utf-8
5)-XX:PermSize 設置持久區的大小,在jdk 8中已經被metaspace取代
6) -XX:MaxPermSize 設置持久區最大值,在jdk 8中已經被metaspace取代