Java堆用于存储Java对象实例,堆的大小在JVM启动时就已经设定好了,可以通过选项“-Xmx”和“-Xms”来进行设置。
- “-Xms”用于表示堆区的起始内存,等价于-XX:InitialHeapSize
- “-Xmx”表示堆区的最大内存,等价于-XX:MaxHeapSize
一旦堆区中的内存超过“-Xmx”指定的最大内存,会抛出OutOfMemoryError异常,通常会将“-Xmx”和“-Xms”两个参数设置相同的值,目的是为了能够在Java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小,从而提高性能。
在默认情况下,初始内存:物理电脑内存大小/64;最大内存大小:物理电脑内存大小/4。
如何查看设置的参数?
- 方法一:jps / jstat -gc 进程Id
- 方法二:-XX:PrintGCDetails