jvm gc算法和配置

gc 收集算法

1.引用计数法(Reference Counting Collector)
2.tracing算法(Tracing Collector) 或 标记-清除算法(mark and sweep)
3.compacting算法 或 标记-整理算法
4.copying算法(Compacting Collector)
5.generation算法(Generational Collector)

Java引用级别

级别 什么时候被垃圾回收 用途 生存时间
强引用 不会被回收 正常用途 jvm停止运行
软引用 内存不足时 内存敏感的高速缓存,比如网页缓存、图片缓存等 内存不足时终止
弱引用 gc的时候 缓存 gc的时候
虚引用

gc收集器

jvm gc算法和配置
Serial收集器(复制算法)

新生代单线程收集器,标记和清理都是单线程,优点是简单高效。

Serial Old收集器(标记-整理算法)

老年代单线程收集器,Serial收集器的老年代版本。

**ParNew收集器(停止-复制算法) **

新生代收集器,可以认为是Serial收集器的多线程版本,在多核CPU环境下有着比Serial更好的表现。

Parallel Scavenge收集器(停止-复制算法)

并行收集器,追求高吞吐量,高效利用CPU。吞吐量一般为99%, 吞吐量= 用户线程时间/(用户线程时间+GC线程时间)。适合后台应用等对交互相应要求不高的场景。

Parallel Old收集器(停止-复制算法)

Parallel Scavenge收集器的老年代版本,并行收集器,吞吐量优先

CMS(Concurrent Mark Sweep)收集器(标记-清理算法)

高并发、低停顿,追求最短GC回收停顿时间,cpu占用比较高,响应时间快,停顿时间短,多核cpu 追求高响应时间的选择

gc的几种算法和收集器

gc的所有配置

jvm gc算法和配置