java jvm gc 垃圾回收机制 总结
2017-09-18 10:53
603 查看
垃圾回收方法(算法,垃圾收集器)
前提
jdk1.8以上(已经无永久代(Permanent Generation (PermGen),变成元空间(Metaspace))算法
基础算法复制算法(新生代使用)
标记-清除算法(一般老生代使用)
标记-整理算法(一般老生代使用)
分代收集算法(Generational Collection),就是平时我们总说的gc
新生代一般使用复制算法,老生代一般使用标记-整理算法,元空间(过阀值就收集)
分代收集算法(Generational Collection)垃圾收集器怎么区分
是单线程还是多线程?阶段不同?
是否Stop The Word ?(业务线程是否停止)
垃圾收集器几个问题
是新生代,老生代还是新生代和老生代可以使用?垃圾收集器类别
收集器 | 新/老生代 | 阶段说明 | 单/多线程进行收集 | 是否Stop The Word | 备注 |
---|---|---|---|---|---|
Serial | 新 | 单 | 是 | 无 | |
ParNew | 新 | 多 | 是 | Serial多线程版本 | |
Parallel Scavenge | 新 | 多 | 是 | 吞吐量高(其他都是Stop The Word时间短),用于后台运算而不需要太多交互的任务 | |
Serial Old | 老 | 单 | 是 | Serial老年代版本 | |
Par Old | 老 | 多 | 是 | Parallel Scavenge老年代版本 | |
CMS(Concurrent Mark Sweep) | 老 | 1.初始标记2.并发标记3.重新标记4.并发清除 | 单 | 1,3阶段 | 1.并发指的是与业务线程。2.有缺点。3.适合B/S。4.其为标记-清除(其他为标记整理),所以会产生碎片。 |
G1(Garbage First) | 老 | 1.设置垃圾收集不超过多少毫秒2.划分区域 |
垃圾回收器总结
-因为使用的是分代收集算法(Generational Collection),所以 一般情况下,所有收集器新生代都使用复制算法,老生代都使用标记-整理算法相关文章推荐
- JVM垃圾回收机制总结(6) :透视Java的GC特性
- 总结: 十分钟理解 Java 对象生存期与JVM垃圾回收机制
- Java性能优化之JVM GC(垃圾回收机制)
- 从JVM的内存管理角度分析Java的GC垃圾回收机制
- 【Java面试整理之JVM】深入理解JVM结构、类加载机制、垃圾回收GC原理、JVM内存分配策略、JVM内存泄露和溢出
- Java性能优化之JVM GC(垃圾回收机制)
- Java性能优化之JVM GC(垃圾回收机制)
- Java的JVM GC(Garbage Collection)垃圾回收原理机制及算法
- Java的JVM GC(Garbage Collection)垃圾回收原理机制及算法
- Java GC(垃圾回收)机制知识总结
- [JVM]成为JavaGC专家(1)—深入浅出Java垃圾回收机制
- Java的JVM GC(Garbage Collection)垃圾回收原理机制及算法
- JVM学习(4)——全面总结Java的GC算法和回收机制
- Java性能优化之JVM GC(垃圾回收机制)
- 成为JavaGC专家(1)—深入浅出Java垃圾回收机制
- JAVA gc垃圾回收机制
- 成为Java GC专家(3)—如何优化Java垃圾回收机制
- Java内存回收(垃圾回收)机制总结
- 成为JavaGC专家(2)—如何监控Java垃圾回收机制
- JVM GC 垃圾回收机制