垃圾收集器回收算法与垃圾回收器

一、垃圾回收算法

(1)、标记和清除算法
		将内存中的对象进行全盘扫描。将垃圾对象进行标记,
			然后再全盘清除垃圾对象。
    优缺点:
			a.存在空间碎片,内存不连续\
			b.标记和清楚都比较耗时
			因为标记和清除都要对整个内存去扫描。所以比较耗时。
(2)、标记复制算法
将内存平均划分为两个空间。并且保证其中一个空间为空。 让进行垃圾
回收的时候,将有数据一侧内存h中存活的数据复制到没有数据的内存
空间n, 然后再将h中的所有对象都删除。 这样既能保证空间连续,
又能保证速度
		优缺点:
				缺点:空间浪费
				优点:空间连续
(3)、标记整理算法
			不需要划分内存。 将存活的对象往一边移动。删除垃圾对象

二、垃圾回收器

** 新生代用到的复制算法(少量对象存活); 老年代用到的 标记整理/清除 算法 **

  • 吞吐量 =dengyi 用户业务代码执行的时间/(业务代码执行的时间+垃圾收集的时间)

适用于Yong区的垃回收器:
Serial ParNew Parallel Scavenge

使用域Old区的垃圾回收器:
CMS Serial Old Parallel Old

都适用的垃圾回收器:
G1

  • CMS Concurrent Mark Sweep 并发类的收集器【用户线程和垃圾回收线程可以同时进行】
      		回收阶段:	
      			初始标记	并发标记	重新标记	并发清理
      		CMS更多关注的是停顿时间
      			停顿时间:
      	并行和并发的区别
    
    • G1收集器

      回收阶段?
      初始标记 并发标记 最终标记 筛选回收 应用程序线程
      回收过程:
      堆被平均分成了多个heap regions空间,每个redion都是连续的region 区域 对堆进行了重新布局。 逻辑上存在Yong区 Old区,物理上已经不是隔离的啦。
      再标记完成之后,G1知道哪些region是空的,哪些是被使用了的。然后他会进行收集这些信息。
      G1会对垃圾对象进行压缩,这样就减少了空间碎片。 只是CMS不具备的功能。

        	什么时候用G1?
        		1、堆内存的使用率超过了50%
        		2、对象的分配率或者提升率差异很大
        		3、期望有个小的停顿时间
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值