GC原理总结

一、为什么要了解GC?

GC是java上JVM虚拟机的垃圾回收机制。合理使用,可以避免OOM(内存用完了)问题;可以进行jvm性能调优,提高程序执行效率、可靠性和健壮性。

从以下几个方面进行分析:

  • java堆内存结构
  • 分代回收算法
  • 垃圾回收机制
  • GC日志
  • jvm参数调优

二、根据java堆内存结构进行分析

java堆内存结构分为新生代老生代永久代(注:jdk1.8中为Metaspace

 其中,新生代有三个区,Eden和两个相等的Survivor区(S0、S1),大多数程序new之后就会在Eden区,少部分存活下来才会进入survivor区,存货下来的会放到S0区,然后由复制算法复制到S1,Eden和S0、S1区域大小的比例是8:1:1。新生代对应的垃圾回收器是Serial收集器ParNew收集器Parallel Scavenge收集器

时间再长的进入到老生代中,使用标记清除算法或标记整理算法进行垃圾回收,标记清除算法会存在大量不连续的内存碎片,而内存整理算法改进了这一点。老生代的垃圾回收器是Serial oldParallel oldCMS收集器

GC和jvm调优日志参考:https://mp.csdn.net/console/editor/html/104769435

本文参考:https://blog.csdn.net/lilong329329/article/details/82222713

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值