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 區的比值。