JVM体系结构与GC调优

1.JVM体系结构概述

这里写图片描述
这里写图片描述

2.GC算法

分类:

  1. 引用计数法:每个对象维护一个引用计数器记录其被引用数,当被引用数为0时即可回收
    这里写图片描述
  2. 跟踪法(可达性分析算法):从GC Roots出发向下搜索,不可达的对象即可回收
    GC Roots对象:
    1. 虚拟机栈(栈帧中的本地变量表)中引用的对象
    2. 本地方法栈中JNI(即native方法)引用的对象
    3. 方法区中类静态属性引用的对象
    4. 方法区中常量引用的对象

在可达性分析算法中不可达的对象,也并非就判定为“死亡”了;判定一个对象最终是否死亡,至少经历两次标记过程:

  1. 不可达的对象会被 第一次标记
  2. 被第一次标记的对象进行 判断是否有必要执行finalize(),若对象覆盖了finalize()方法 且 finalize() 没有执行过,若都满足则执行finalize();
  3. 在finalize()中,若对象重新和引用链上的任一对象建立关联,则不会被第二次标记,它则不会被回收。
    这里写图片描述

1.复制

这里写图片描述

2.标记清除

这里写图片描述

3.标记压缩

这里写图片描述

4.标记清除压缩

  • 原理:
    1. Mark-Sweep和Mark-Compact结合
    2. 和Mark-Sweep一致,当进行多次GC后才Compact
  • 优点:
    减少移动对象的成本

3.Hotspot内存管理

这里写图片描述
这里写图片描述
这里写图片描述

4.Hotspot垃圾回收器

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

1.新生代垃圾回收器

这里写图片描述

1.Serial Copying

这里写图片描述

2.ParNew

这里写图片描述

3.Parallel Scavenge(吞吐量优先)

这里写图片描述
这里写图片描述

2.旧生代垃圾回收器

这里写图片描述

1.Serial MSC(Serial Old)

这里写图片描述

2.Parallel Compacting(Parallel Old)

这里写图片描述
这里写图片描述

3.CMS(并发低停顿)

这里写图片描述
这里写图片描述
这里写图片描述

5.调优

1.堆大小调优

这里写图片描述
这里写图片描述

2.新生代调优

1.大小

这里写图片描述

2.晋升

这里写图片描述
这里写图片描述

3.旧生代调优

这里写图片描述

6.监控工具

这里写图片描述
这里写图片描述
这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值