JVM 常用指令
栈设置
- -Xss: 栈大小
堆设置
- -Xms: 初始堆大小
- -Xmx: 最大堆大小
- -Xmn: 新生代大小
- -XX:NewSize=n: 设置年轻代大小
- -XX:NewRatio=n: 设置年轻代和年老代的比值。如:为 3,表示年轻代与年老代比值为 1:3,年轻代占整个年轻代年老代和的 1/4
- -XX:SurvivorRatio=n: 年轻代中 Eden 区与两个 Survivor 区的比值。注意 Survivor 区有两个。
- 如:3,表示 Eden:Survivor=3:2,一个 Survivor 区占整个年轻代的 1/5
- -XX:PretenureSizeThreshold: 大于此值的对象直接在老年代分配
- -XX:MaxTenuringThreshold: 定义年龄的阈值。在 Eden 中的对象经过 Minor GC 依然存活,将移动到 Survivor 中,年龄增加 1 岁,超过该年龄阈值将进入老年代
永久代设置
- -XX:PermSize: 初始化永久代大小
- -XX:MaxPermSize=n: 永久代最大容量
元空间:
- -XX:MetaspaceSize : 分配给类元数据空间的初始大小。
- MetaspaceSize 的值设置的过大会延长垃圾回收时间。
- 垃圾回收过后,引起下一次垃圾回收的类元数据空间的大小可能会变大。
- -XX:MaxMetaspaceSize :分配给类元数据空间的最大值
- 超过此值就会触发 Full GC 。此值默认没有限制,但应取决于系统内存的大小,JVM 会动态地改变此值。
收集器设置
- -XX:+UseSerialGC: 设置串行收集器
- -XX:+UseParallelGC: 设置并行收集器
- -XX:+UseParalledlOldGC: 设置并行年老代收集器
- -XX:+UseConcMarkSweepGC: 设置并发收集器
- -XX:ParallelCMSThreads: 并发标记扫描垃圾回收器 = 为使用的线程数量
- -XX:+UseG1GC: G1 垃圾回收器
并行收集器配置:
- -XX:ParallelGCThreads=n: 设置并行收集器收集时使用的 CPU 数和并行收集线程数。默认开启的线程数量与 CPU 数量相同
- -XX:MaxGCPauseMillis=n: 设置并行收集最大暂停时间
- -XX:GCTimeRatio=n: 设置垃圾回收时间占程序运行时间的百分比。公式为 1/(1+n)-XX:+CMSIncrementalMode: 设置为增量模式。适用于单 CPU 情况。
- -XX:ParallelGCThreads=n: 设置并发收集器年轻代收集方式为并行收集时,使用的 CPU 数。并行收集线程数。
垃圾回收统计信息
- -XX:+PrintGC
- -XX:+PrintGCDetails
- -XX:+PrintGCTimeStamps
- -Xloggc:filename