1、-Xmn -Xms -Xmx -Xss有什麼區別
首先,-Xmn、-Xms、-Xmx、-Xss都是JVM對內存的配置參數,我們可以根據不同需要區修改這些參數,以達到運行程序的最好效果。
瞭解JVM內存管理看這裏:JVM是如何管理內存的
-Xms、-Xmx
-Xms、-Xmx分配用來設置進程堆內存的最小大小和最大大小。
瞭解堆內存看這裏:java堆內存是什麼樣的
瞭解java垃圾回收機制看這裏:java垃圾回收機制是什麼
-Xmn
-Xmn用來設置堆內新生代的大小。通過這個值我們也可以得到老生代的大小:-Xmx減去-Xmn
瞭解堆新生代垃圾處理算法看這裏:什麼是新生代的複製算法
-Xss
-Xss設置每個線程可使用的內存大小。
在相同物理內存下,減小這個值能生成更多的線程。當然操作系統對一個進程內的線程數還是有限制的,不能無限生成,經驗值在3000~5000左右。
除了這些配置,JVM還有非常多的配置,常用的如下:
-
-XX:PermSize、-XX:MaxPermSize
分配用來設置永久代的最小大小和最大大小。Java 8以後移除了方法區,取而代之的是本地元空間Metaspace,大小由-XX:MetaspaceSize和-XX:MaxMetaspaceSize調節。 -
-XX:MaxTenuringThreshold
設置轉入老生代的存活次數。如果是0,則直接跳過新生代進入老生代。 -
-XX:NewRatio
設置老生代和新生代的比值,例如該值爲3,則表示新生代與老生代比值爲1:3。 -
文章轉載自:點擊打開鏈接