java 垃圾回收

本文基于Oracle hotspot jvm


1.GC:查找不再使用的对象,以及释放这些对象所管理的内存

2.算法:分代收集


Young:主要是用来存放新生的对象。

Old:主要存放应用程序中生命周期长的内存对象。

Permanent:是指内存的永久保存区域,主要存放ClassMeta的信息,Class在被 Load的时候被放入PermGen 

在新生代中,每次垃圾收集时都发现有大批对象死去,只有少量存活,那就选用复制算法,只需要付出少量存活对象的复制成本就可以完成收集。而老年代中因为对象存活率高、没有额外空间对它进行分配担保,就必须使用“标记-清理”或“标记-整理”算法来进行回收。


3.主流收集器:

   

   Serial
   Throughput(Parallel):Parallel新生代+ParallelOld老年代
   CMS(Concurrent mark sweep ):ParaNew新生代 +CMS老年代
   G1(GarbageFirst)
   备注:

          2.Throughput minorfullgc时空停顿、

          3.Cmsminor时空停顿 fullgc时仅在部分阶段存在  (初始标记,重新标记)


 Serial :
      串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线程去回收。新生代、        老年代使用串行回收;新生代复制算法、老年代标记-压缩;垃圾收集的过程中会StopThe World(服务暂停)
           参数控制: -XX:+ UseSerialGC    串行收集器
 Parallel:
      Parallel Scavenge
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值