一、设置内存大小
1.1 理论
- Java堆区用于存储Java对象实例,那么堆的大小在JVM启动时就已经设定好了,通过选项"-Xms"和"-Xmx"来进行设置。
- -Xms用于表示堆区的起始内存,等价于**-XX:InitialHeapSize**
- -Xmx则用于表示堆区的最大内存,等价于**-XX:MaxHeapSize**
- -X是JVM的运行参数,ms是memory start 。
- 一旦堆区中的内存大小超过“-Xmx"所指定的最大内存时,将会抛出OutofMemoryError异常。
- 通常会将**-Xms和-Xmx两个参数配置相同的值**,其目的是为了能够在Java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小,从而提高性能。
- https://hello.blog.csdn.net/article/details/108462684
- 默认情况下:
- 初始内存大小:物理电脑内存大小/64
- 最大内存大小:物理电脑内存大小/4
- 查看设置的参数
- -XX:+PrintGCDetails 将GC明细输出
- jps / jstat -gc 进程id
1.2 实操
//设置-Xms600m -Xmx600m -XX:PrintGCDetails
public class HeapSpaceInitial {
public