JVM-垃圾回收

2020-03-12  本文已影响0人  啊啊啊哼哼哼

JVM的垃圾回收机制指的是对堆中的垃圾对象进行回收。那么我将从三个方面来进行学习和整理,即:

对象被判定为垃圾的标准

引用计数法

可达性算法

垃圾回收算法

Mark-and-Sweep(标记清除算法)

Copying(复制算法)

Mark-and-Compacting (标记整理算法)

分代收集算法

按照对象生命周期的不同划分区域以采用不同的垃圾回收算法


堆内存划分.png

GC分类:Minor GC(用于年轻代),Full GC(用于老年代)。

年轻代

常见的调优参数

老年代

Stop-the-World:JVM由于执行GC而停止了应用程序的执行;多数GC通过减少Stop-the-World发生的时间来提高程序的性能

Safepoint:分析过程中对象引用关系不会发生变化的点:产生Safepoint的地方:方法调用;循环跳转;异常跳跃。

常见的垃圾收集器

JVM的运行模式

年轻代垃圾收集器

Serial 收集器 -XX: +UseSerialGC,复制算法

ParNew 收集器 -XX:+UseParNewGC,复制算法

Parallel Scavenge收集器 -XX:+UseParallelGC,复制算法

老年代常用的垃圾处理器

Serial Old收集器 -XX: +UseSerialOldGC,标记-整理算法

1、单线程收集,进行垃圾收集时,暂停所有线程
2、简单高效,client模式下默认的老年代收集器

Parallel Old -XX:+UseParallelOldGC,标记-整理算法

1、多线程,吞吐量优先
Parallel Scavenge + Parallel Old

CMS收集器 -XX:+UseConcMarkSweepGC,标记-清除算法

Garbage First收集器

并发核并行
分代收集
空间整合:标记整理
可预测的停顿
将整个Java堆内存划分为多个大小相等的Region,年轻代和老年代不再物理隔离

上一篇下一篇

猜你喜欢

热点阅读