java性能监控

一 性能监控

在这里插入图片描述
我们写的.java文件会被编译成.class文件 .class文件会被jvm的类装载器装载到jvm中。所有的数据都在运行时数据区,所以优化的大部分都在运行时数据区,然后由jvm的执行引擎负责执行 ,执行方法会在虚拟机栈中进行入栈 出栈的调用操作

在这里插入图片描述

在这里插入图片描述
java的JVM是由C来编写的(使用C语言的时候要开辟空间,释放内存等)

在这里插入图片描述

在这里插入图片描述
整个流程 垃圾回收是存在于新生代和老年代

在这里插入图片描述
新生代(一个是伊甸园区,一个是幸存者区)
对于新创建的对象,首先要分配内存,他首先会去新生代(伊甸园区)中看内存空间够不够,如果够的话,直接给他分配内存,如果不够,此时要进行一次GC 这次GC主要是用来清理新生代的空间 (比如说伊甸园区里面存了10个对象,有一个对象还在用,其他的9个都没用了,那么就把这9个踢出去,剩余的一个还会把他放到幸存者区中) 如果这次小的GC还是放不下,我们就认为这是一个大的对象,我们尝试把他放到老年代(老年代是新生代没办法处理的情况下才去的老年代) 如果老年代能放下,就直接分配内存,如果老年代还是放不下,那么接下来就要进行一次FullGC (把老年代和新生代中的数据都看一看,把没有用的踢出去) 如果FullGC后能放下了就可以,如果还是放不下,那么就会报GC异常 OOM FULLGC的速度非常的慢(如果MinorGC 100次才花费1s时间的话,FullGC不到10次就得花费1s时间 ) 后续优化监控的时候一定要注意 一定要避免应用经常发生FullGC的问题,

当YGC发生了以后, 伊甸园区的幸存者就会搬家到幸存者区 如果幸存者区的对象存活超过这个阈值(YGC了很多次都还活着 说明他的生命力顽强,每次YGC 他的生命力都长1岁),超过阈值以后,就把他搬到老年区,

在这里插入图片描述

在性能优化期间,要时刻关注这两个区的动态变化,并进行一些调优

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值