JVM中_XmnXmsXmxXss有什麼區別

原文:https://blog.csdn.net/ooppookid/article/details/51530932

1、XmnXmsXmxXss有什麼區別
首先,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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章