設置
- Java堆區用於存儲java對象實例,堆的大小在jvm啟動時就已經設定好了,可以通過 "-Xmx"和 "-Xms"來進行設置
- -Xms 用於表示堆的起始內存,等價於 -XX:InitialHeapSize
- -Xms 用來設置堆空間(年輕代+老年代)的初始內存大小
- -X 是jvm的運行參數
- ms 是memory start
- -Xms 用來設置堆空間(年輕代+老年代)的初始內存大小
- -Xmx 用於設置堆的最大內存,等價於 -XX:MaxHeapSize
- -Xms 用於表示堆的起始內存,等價於 -XX:InitialHeapSize
- 一旦堆區中的內存大小超過 -Xmx所指定的最大內存時,將會拋出OOM異常
- 通常會將-Xms和-Xmx兩個參數配置相同的值,其目的就是為了能夠在java垃圾回收機制清理完堆區后不需要重新分隔計算堆區的大小,從而提高性能
- 默認情況下,初始內存大小:物理內存大小/64;最大內存大小:物理內存大小/4
- 手動設置:-Xms600m -Xmx600m
查看
方式一: 終端輸入jps, 然后jstat -gc 進程id
方式二:(控制台打印)Edit Configurations -> VM Options 添加 -XX:+PrintGCDetails
方式三:
1 public class HeapSpaceInitial { 2 public static void main(String[] args) { 3 4 //返回Java虛擬機中的堆內存總量 5 long initialMemory = Runtime.getRuntime().totalMemory() / 1024 / 1024; 6 //返回Java虛擬機試圖使用的最大堆內存量 7 long maxMemory = Runtime.getRuntime().maxMemory() / 1024 / 1024; 8 9 System.out.println("-Xms : " + initialMemory + "M"); 10 System.out.println("-Xmx : " + maxMemory + "M"); 11 12 }