JVM学习笔记(5)之GC类型
2016-01-22 15:38
381 查看
JDK7的5种GC类型
SerialGCParallelGC
ParallelOld GC (Parallel Compacting GC)
ConcurrentMark & Sweep GC (or “CMS”)
GarbageFirst (G1) GC
Serial GC
使用标记整理法
Serial GC不应该被用在服务器上。这种GC类型在单核CPU的桌面电脑时代就存在了。使用Serial GC会显著降低应用的性能指标
Parallel GC
Parallel GC采用的是多线程
Parallel Old G
1. 与parallel GC相比,唯一的区别在于针对老年代的GC算法。Parallel Old GC分为三步:标记-汇总-压缩(mark– summary – compaction)。
2. 汇总(summary)步骤与清理(sweep)的不同之处在于,其将依然幸存的对象分发到GC预先处理好的不同区域。
CMS GC
回收过程:
1. 初始化标记:只是查找那些距离类加载器最近的幸存对象。
2. 并行标记:所有被幸存对象引用的对象会被确认是否已经被追踪和校验。这一步的不同之处在于,在标记的过程中,其他的线程依然在执行。
3. 重新标记:会再次检查那些在并行标记步骤中增加或者删除的与幸存对象引用的对象。
4. 并行交换:转交垃圾回收过程处理。垃圾回收工作会在其他线程的执行过程中展开。
缺点:
1. 它会比其他GC类型占用更多的内存和CPU
2. 默认情况下不支持压缩步骤
G1 GC
1. 每个对象被分配到不同的格子,随后GC执行。
2. 当一个区域装满之后,对象被分配到另一个区域,并执行GC。
相关文章推荐
- Java 6 JVM参数选项大全(中文版)
- 深入解析JVM对dll文件和对类的装载过程
- Java虚拟机JVM性能优化(二):编译器
- Java程序员必须知道的5个JVM命令行标志
- Java虚拟机JVM性能优化(三):垃圾收集详解
- 解析Java虚拟机中类的初始化及加载器的父委托机制
- JAVA中JVM的重排序详细介绍
- Java虚拟机JVM性能优化(一):JVM知识总结
- Android Studio 报错failed to create jvm error code -4的解决方法
- 解析Linux系统中JVM内存2GB上限的详解
- 了解Java虚拟机JVM的基本结构及JVM的内存溢出方式
- Java堆空间占满的gc日志实例
- java动态代理模式
- Groovy Meta Object Protocol
- xms/xmx/xss在kette中的调优设置
- JVM工作原理和特点
- JVM性能调优监控工具jps、jstack、jstat、jmap、jinfo使用详解
- jmap详解
- 深入Java虚拟机
- JVM内存模型及垃圾收集策略解析