JVM

https://www.bilibili.com/video/BV1Yr4y1N7HL?p=3&spm_id_from=pageDriver

基本内存结构
在这里插入图片描述

堆内存结构以及调优

调优就是减少yong gc和full gc的频繁次数
以及yong gc和full gc发生时占用时间

在这里插入图片描述

可达性分析算法
minor gc:如何判断对象为非垃圾:从变量的引用找出所有应用的对象,为非垃圾,并将其分代年龄+1(minor gc回收整个年轻代的垃圾又称为yong gc)
1.当堆的Eden(伊甸园)第一次满了就触发minor gc,并将这些非垃圾从Eden(伊甸园)复制到Survivor0区,并将其分代年龄+1,剩余的就是垃圾,之后直接清空Eden(伊甸园)
2.下次堆的Eden(伊甸园)满了就再次触发minor gc,并将这些非垃圾从Eden(伊甸园)复制到Survivor1区,minor gc也会找出Survivor0区的非垃圾复制到Survivor1区,之后直接清空Eden(伊甸园)和Survivor0区
3.下次堆的Eden(伊甸园)满了就再次触发minor gc,并将这些非垃圾从Eden(伊甸园)复制到Survivor0区,minor gc也会找出Survivor1区的非垃圾复制到Survivor0区,之后直接清空Eden(伊甸园)和Survivor1区
4.循环上面的第二第三步骤
5.当分代年龄=15,会被放入老年代
6.当老年代满了会触发full gc,当无法回收时就OOM

注意:默认的内存划分是这样的

年轻代:8:1:1
1.当Eden的所有对象都非垃圾时,s0明显不够用,直接会将多余的放入老年代
2.如果一批新的对象进入s0或者s1,这批对象的大小大于S0的百分之50也会直接放入老年代

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

G1垃圾收集器

频繁yong gc,但每次操作用户无感知(非常快),每次回收一小部分
在这里插入图片描述

在这里插入图片描述

对象的组成
在这里插入图片描述

内存监控
在这里插入图片描述

线上问题定位
https://www.bilibili.com/video/BV1Yr4y1N7HL?p=4&spm_id_from=pageDriver
阿里巴巴提供的JVM监控工具Arthas
在这里插入图片描述

在这里插入图片描述
输入

dashboard

可以看到线程,内存以及运行环境信息
在这里插入图片描述
查看异常的线程(线程8占用cpu高)

thread 8

在这里插入图片描述
就直接定位到那个类的那行代码

线上查看代码

jad 类的全路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值