JVM記憶體配置引數

2022-08-04 11:51:10 字數 788 閱讀 1914

對於jvm記憶體配置引數:

-xmx10240m -xms10240m -xmn5120m -xxsurvivorratio=3

,其最小記憶體值和survivor區總大小分別是()

-xms :設定堆的最小值

-xmx:設定堆的最小值和最大值。

-xmn:設定了新生代的大小為5120m

-xxsurvivorratio=3:設定eden:survivor=3:1

jvm中分為堆和方法區

堆又進一步分為新生代和老年代

方法區為永久代

堆中區分的新生代和老年代是為了垃圾**,新生代中的物件存活期一般不長,而老年代中的物件存活期較長,所以當垃圾**器**記憶體時,新生代中垃圾**效果較好,會**大量的記憶體,而老年代中**效果較差,記憶體**不會太多。

基於以上特性,新生代中一般採用複製演算法,因為存活下來的物件是少數,所需要複製的物件少,而老年代物件存活多,不適合採用複製演算法,一般是標記整理和標記清除演算法。

因為複製演算法需要留出一塊單獨的記憶體空間來以備垃圾**時複製物件使用,所以將新生代分為eden區和兩個survivor區,每次使用eden和乙個survivor區,另乙個survivor作為備用的物件複製記憶體區。

最小記憶體值就是初始堆的大小

-xmn設定了新生代的大小為5120m,而-xxsurvivorratio=3

eden+2*survivor=5120

3*survivor+2*survivor=5120

5*survivor=5120

survivor=1024

JVM記憶體配置引數

對於jvm記憶體配置引數 xmx10240m xms10240m xmn5120m xxsurvivorratio 3 其最小記憶體值和survivor區總大小分別是 5120m,1024m 5120m,2048m 10240m,1024m 10240m,2048m xmx10240m 代表最大堆 ...

JVM記憶體引數配置

首先我們知道 jvm發生記憶體錯誤的型別 1 堆記憶體洩漏 outofmemory j a heap space 此種記憶體洩漏,增加記憶體,只能暫時解決問題,並不能 問題。必須要優化 一定是 的問題 排查堆中的大量物件,就會發現,這些物件都被引用,物件不能及時被 導致超出了堆的設定最大記憶體。2 ...

JVM引數配置

xmsn 指定jvm堆的初始大小,預設為物理記憶體的1 64,最小為1m,可以指定單位k m,如不指定預設為 位元組 xmxn 指定jvm堆的最大值,預設為物理記憶體的1 4或1g,最小為2m,單位與 xms一致。xssn 設定單個執行緒棧的大小,預設為512k xincgc 開啟增量gc 預設為關...