我們在效能最佳化的時候,最常用的是使用 (視伺服器記憶體情況進行調整)
其中
XMS : JVM初始分配的堆記憶體
XMX : JVM最大允許分配的堆記憶體,按需分配
堆記憶體分配:
JVM初始分配的堆記憶體由-Xms指定,預設是物理記憶體的1/64;
JVM最大分配的堆記憶體由-Xmx指定,預設是物理記憶體的1/4。
預設空餘堆記憶體小於40%時,JVM就會增大堆直到-Xmx的最大限制;
空餘堆記憶體大於70%時,JVM會減少堆直到-Xms的最小限制。
因此伺服器一般設定-Xms、-Xmx相等以避免在每次GC 後調整堆的大小。
說明:如果-Xmx 不指定或者指定偏小,應用可能會導致java.lang.OutOfMemory錯誤,此錯誤來自JVM,不是Throwable的,無法用try...catch捕捉。
我們在效能最佳化的時候,最常用的是使用 (視伺服器記憶體情況進行調整)
其中
XMS : JVM初始分配的堆記憶體
XMX : JVM最大允許分配的堆記憶體,按需分配
堆記憶體分配:
JVM初始分配的堆記憶體由-Xms指定,預設是物理記憶體的1/64;
JVM最大分配的堆記憶體由-Xmx指定,預設是物理記憶體的1/4。
預設空餘堆記憶體小於40%時,JVM就會增大堆直到-Xmx的最大限制;
空餘堆記憶體大於70%時,JVM會減少堆直到-Xms的最小限制。
因此伺服器一般設定-Xms、-Xmx相等以避免在每次GC 後調整堆的大小。
說明:如果-Xmx 不指定或者指定偏小,應用可能會導致java.lang.OutOfMemory錯誤,此錯誤來自JVM,不是Throwable的,無法用try...catch捕捉。