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)


相关推荐
张李浩3 小时前
Leetcode 054螺旋矩阵 采用方向数组解决
算法·leetcode·矩阵
xixihaha13243 小时前
将Python Web应用部署到服务器(Docker + Nginx)
jvm·数据库·python
big_rabbit05023 小时前
[算法][力扣101]对称二叉树
数据结构·算法·leetcode
美好的事情能不能发生在我身上4 小时前
Hot100中的:贪心专题
java·数据结构·算法
xixihaha13244 小时前
Python游戏中的碰撞检测实现
jvm·数据库·python
2301_821700534 小时前
C++编译期多态实现
开发语言·c++·算法
xixihaha13244 小时前
C++与FPGA协同设计
开发语言·c++·算法
小小怪7505 小时前
C++中的函数式编程
开发语言·c++·算法
xixixiLucky5 小时前
编程入门算法题---小明爬楼梯求爬n层台阶一共多少种方法
算法
剑锋所指,所向披靡!5 小时前
数据结构之线性表
数据结构·算法