垃圾回收器 类型

来源:互联网 发布:淘宝贷款是真的吗 编辑:程序博客网 时间:2024/04/30 01:22
新生代串行收集器
使用复制算法
单线程进行垃圾回收
独占式垃圾回收
-XX:UseSerialGC 指定 新生代 串行收集器 和 老年代 串行收集器
JVM client下的默认收集器


老年代串行收集器
使用标记压缩算法
-XX:UseSerialGC 指定 新生代 串行收集器 和 老年代 串行收集器
-XX:UseParNewGC 指定 新生代 并行收集器 和 老年代串行收集器
-XX:UseParallellGC 指定 新生代 并行回收收集器 和 老年代串行收集器


并行收集器
多线程进行垃圾回收
独占式垃圾回收
-XX:UseParNewGC 指定 新生代 并行收集器 和 老年代串行收集器
-XX:UseConcMarkSweepGC 指定 新生代 并行收集器 和 老年代CMS收集器
-XX:ParallelGCThreads 指定并行收集器工作时的线程数量

新生代并行回收收集器
使用复制算法
多线程进行垃圾回收
独占式垃圾回收
非常关注 吞吐量
-XX:UseParallellGC 指定 新生代 并行回收收集器 和 老年代 串行收集
-XX:UseParallellOldGC 指定 新生代 并行回收收集器 和 老年代 并行回收收集器
-XX:ParallelGCThreads 指定并行收集器工作时的线程数量
-XX:MaxGCPauseMills 设置最大垃圾收集器停顿时间
-XX:GCTimeRatio 设置吞吐量大小,如果为n(1到100,默认为19), 则gc时间不超过1/(1+n)

老年代并行回收收集器
使用标记压缩算法
其他跟 新生代并行回收收集器 一样

CMS收集器(concurrent mark sweep)
使用 标记清除 算法
多线程进行垃圾回收
非独占式垃圾回收
非常关注 停顿时间
流程: 初始标记, 并发标记,重新标记,并发清理,并发重置
-XX:ParallelCMSThreads 指定CMS收集器工作时的线程数量


G1收集器
使用标记压缩算法
伴随JDK7发布,还处于实验性阶段
-XX:+UnlockExperimentlVMOptions -XX:+UseG1GC 启用G1回收器可以进行非常精确的停顿控制,可以指定在长度为M的时间段,垃圾回收器时间不超过N,
-XX:MaxGCPauseMills =50
-XX:GCPauseIntervalMills =200

在指定的200ms内,停顿时间不超过50ms,这是G1回收器的目标,但不保证能执行


VM启动参数共分为三类:

其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;
其二是非标准参数(-X),指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。但是在生产环境中,并不保证所有jvm实现都满足,所以为了提高性能,往往需要调整这些参数,以求系统达到最佳性能。另外这些参数不保证向后兼容,也即是说“如有变更,恕不在后续版本的JDK通知”(这是官网上的原话);
其三是非Stable参数(-XX),这类参数在jvm中是不稳定的,不适合日常使用的,后续也是可能会在没有通知的情况下就直接取消了,需要慎重使用。


0 0
原创粉丝点击