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)


相关推荐
m0_748554813 小时前
golang如何实现用户订阅偏好管理_golang用户订阅偏好管理实现总结
jvm·数据库·python
IronMurphy3 小时前
【算法四十三】279. 完全平方数
算法
lee_curry3 小时前
第四章 jvm中的垃圾回收器
java·jvm·垃圾收集器
墨染天姬3 小时前
【AI】Hermes的GEPA算法
人工智能·算法
papership4 小时前
【入门级-数据结构-3、特殊树:完全二叉树的数组表示法】
数据结构·算法·链表
smj2302_796826524 小时前
解决leetcode第3911题.移除子数组元素后第k小偶数
数据结构·python·算法·leetcode
阿正呀4 小时前
Redis怎样实现本地缓存的高效失效通知
jvm·数据库·python
Beginner x_u5 小时前
链表专题:JS 实现原理与高频算法题总结
javascript·算法·链表
2501_901200535 小时前
mysql如何设置InnoDB引擎参数_优化innodb_buffer_pool
jvm·数据库·python
金銀銅鐵6 小时前
[java] 编译之后的记录类(Record Classes)长什么样子(上)
java·jvm·后端