- 垃圾收集器按照区域不同,提供了多种不同的垃圾收集器
2. 各个垃圾收集器的比较
ID | 适用区域 | 线程 | 垃圾收集器 | 适用环境 | 特点 | 算法种类 |
---|---|---|---|---|---|---|
1 | 新生代 | 单线程 | Serial(串行垃圾回收器) | client模式(默认) | 简单、高效 | 复制算法 |
2 | 新生代 | 多线程 | ParNew(并行垃圾回收器) | Server模式(默认) | Serial的多线程实现 | 复制算法 |
3 | 新生代 | 多线程 | Parallel Scavenge(并行垃圾回收器) | 吞吐量优先 | 提高新生代垃圾收集效率 | 复制算法 |
4 | 老年代 | 单线程 | Serial Old(串行垃圾回收器) | client模式(默认) | Serial与Serial Old可搭配使用; | 标记整理算法 |
5 | 老年代 | 多线程 | CMS(并发清除回收器)☆ | 堆内存大、CPU核数多的服务器端应用 | 并发收集停顿低;有内存碎片 | 标记清除算法 |
6 | 老年代 | 多线程 | Parallel Old(并行垃圾回收器) | 吞吐量高的环境 | Parallel Scavenge与Parallel Old可搭配使用; | 标记整理算法 |
7 | 不同区域 | 多线程 | G1☆ | 目前最优的GC算法 | 不产生内存碎片,可以控制停顿时间,在不牺牲吞吐量的情况下实现最短停顿垃圾回收(优于CMS) | 标记整理算法 |
-
调参
算法 调参操作 ParNew 通过**-XX:ParallelGCThreads参数调节ParNew垃圾收集器的工作线程数** Parallel Scavenge 控制最大垃圾收集器停顿时间:-XX:MaxGCPauseMillis ;控制吞吐量大小:-XX:GCTimeRatio ;控制自适应策略开启与否:UseAdapyiveSizePolicy