1. 程式人生 > >Java記憶體管理之類似-Xms、-Xmx 這些引數的含義

Java記憶體管理之類似-Xms、-Xmx 這些引數的含義

Java記憶體管理之類似-Xms、-Xmx 這些引數的含義

答:

1.堆記憶體分配:

  • JVM 初始分配的記憶體由**-Xms** 指定,預設是實體記憶體的 1/64;
  • JVM 最大分配的記憶體由**-Xmx** 指定,預設是實體記憶體的 1/4;
  • 預設空餘堆記憶體小於 40% 時,JVM 就會增大堆直到-Xmx 的最大限制;空餘堆記憶體大於 70% 時,JVM 會減少堆直到 -Xms 的最小限制;
  • 因此伺服器一般設定-Xms、-Xmx 相等以避免在每次 GC 後調整堆的大小。物件的堆記憶體由稱為垃圾回收器的自動記憶體管理系統回收。

2.非堆記憶體分配:

  • JVM 使用**-XX:PermSize** 設定非堆記憶體初始值,預設是實體記憶體的 1/64;
  • XX:MaxPermSize 設定最大非堆記憶體的大小,預設是實體記憶體的 1/4;
  • -Xmn2G:設定年輕代大小為 2G;
  • -XX:SurvivorRatio,設定年輕代中 Eden 區與 Survivor 區的比值