一 点睛
Java 堆区用于存储 Java 对象实例,那么堆的大小在 JVM 启动时就已经设定好了,大家可以通过选项"-Xmx"和"-Xms"来进行设置。
-
“-Xms" 用于表示堆区的起始内存,等价于 -xx:InitialHeapSize
-
“-Xmx" 用于表示堆区的最大内存,等价于 -XX:MaxHeapSize
一旦堆区中的内存大小超过“-xmx"所指定的最大内存时,将会抛出 outofMemoryError 异常。
通常会将 -Xms 和 -Xmx 两个参数配置相同的值,其目的是为了能够在 java 垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小,从而提高性能。
默认情况下
-
初始内存大小:物理电脑内存大小/64
-
最大内存大小:物理电脑内存大小/4
二 实战
1 代码
/**
* 1. 设置堆空间大小的参数
* -Xms 用来设置堆空间(年轻代+老年代)的初始内存大小
* -X 是 jvm的运行参数
* ms 是 memory start
* -Xmx 用来设置堆空间(年轻代+老年代)的最大内存大小
*
* 2. 默认堆空间的大小
* 初始内存大小:物理电脑内存大小 / 64
* 最大内存大小:物理电脑内存大小 / 4
*
* 3. 手动设置:-Xms600m -Xmx600m
* 开发中建议将初始堆内存和最大的堆内存设置成相同的值。因为堆内存频繁的扩大或缩小会对系统造成不必要的系统开销,所以设置成一样。
*
* 4. 查看设置的参数:
* 方式一:jps /