JVM垃圾收集器【如何找到垃圾、清除垃圾的算法、垃圾回收器】

JVM垃圾收集器

转自《极客时间》

GC基本原理

垃圾回收

如果不进行垃圾收集,内存数据很快就会被占满

理论计算:

计算题:256byte * 400w / 1024 /1024 = 976.5625 MB

400百万256byte请求 约等于对象 1GB

什么是垃圾?

如何找到这个垃圾?

引用计数法和根可达算法

1)引用计数法(Reference Counting)

通过引用计数方法,找到这个垃圾


2)根可达算法(GCRoots Tracing)

3)回收过程

4)对象引用





清除垃圾的算法

JVM提供3种方法,清除垃圾对象:

  1. Mark-Sweep 标记清除算法
  2. Copying 拷贝算法
  3. Mark-Compact 标记压缩算法




垃圾回收器

串行收集器

Serial

Serial Old

并行收集器

Parallel Scavenge【吞吐量优先 用与并行,复制算法】

Parallel Old


ParNew收集器


CMS收集器【用户线程并行】


G1(Garbage-First)收集器





ZGC(Z Garbage Collector)


相关推荐
波波侠83 分钟前
代码随想录算法训练营打卡第31天|56. 合并区间、738.单调递增的数字
算法
Snow_day.4 分钟前
有关线段树应用(1)
数据结构·算法·贪心算法·动态规划·图论
u0109272717 分钟前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
m0_686041618 分钟前
Python类型提示(Type Hints)详解
jvm·数据库·python
m0_5613596712 分钟前
C++模块接口设计
开发语言·c++·算法
大地的一角26 分钟前
(Linux)线程理解与线程控制
jvm
难得的我们41 分钟前
单元测试在C++项目中的实践
开发语言·c++·算法
Once_day42 分钟前
代码训练总结(1)算法和数据结构的框架思维
数据结构·算法
鹿角片ljp1 小时前
力扣125.验证回文串-双指针
数据结构·算法
diediedei1 小时前
Python字典与集合:高效数据管理的艺术
jvm·数据库·python