JVM参数可以分为以下几类:
- 标准参数:即在 JVM 的各个版本中基本不变的,相对比较稳定的参数,向后兼容这些参数是JVM通用的参数,如-Xmx、-Xms等,可以⽤java -help 打印出来。
- 非标准参数:变化比较小的参数,默认 JVM 实现这些参数的功能,但是并不保证所有 JVM 实现都满足,且不保证向后兼容;这些参数是JVM实现特定的参数,不同JVM实现中可能不同,可以⽤java -X 打印出来。
- 不稳定参数: 此类参数各个 JVM 实现会有所不同,将来可能会随时取消,需要慎重使用,这⼀类参数是跟特定HotSpot版本对应的,并且变化⾮常⼤。
- 具体来说,以下是一些常用的JVM参数:
- - -Xmx:设置JVM堆内存最大值;
- - -Xms:设置JVM堆内存初始值;
- - -Xss:设置线程栈大小;
- - -XX:PermSize:设置永久代大小;
- - -XX:MaxPermSize:设置最大永久代大小;
- - -XX:+UseG1GC:使用G1垃圾回收器;
- - -verbose:gc:打印垃圾回收信息;
- - -XX:+HeapDumpOnOutOfMemoryError:当发生内存溢出时生成堆快照;
- - -XX:+PrintGCDetails:打印详细的垃圾回收信息;
- - -XX:+PrintGCDateStamps:打印每次垃圾回收的时间戳。