JVM垃圾回收器(串行Serial,ParNew,Parallel,CMS,G1)

串行收集器(使用单线程进行垃圾回收):对新生代的回收使用复制算法,对老年代使用标记压缩算法			
	串行收集器	-XX:+UseSerialGC		新生代串行复制,老年代串行标记整理
并行回收器(使用多线程进行垃圾回收):															
	ParNew回收器	-XX:+UseParNewGC		新生代并行复制,老年代串行标记整理
	Parallel回收器	-XX:+UseParallelGC		新生代并行复制,老年代串行标记整理(比ParNew回收器好)
	Parallel回收器	-XX:+UseParallelOldGC	        新生代并行复制,老年代并行标记整理
CMS回收器
	CMS回收器	-XX:+UseConcMarkSweepGC	        只适用于老年代,减少了应用程序的停顿时间,但停顿频率高
		初始标记
		标记从GC Root可以直接可达的对象;
		并发标记(和应用程序线程一起)
		主要标记过程,标记全部对象;
		重新标记
		由于并发标记时,用户线程依然运行,因此在正式清理前,再做依次重新标记,进行修正。
		并发清除(和用户线程一起)
		基于标记结果,直接清理对象。	
G1回收器
	G1回收器		-XX:+UseG1GC		
		1、因为划分了很多区块,回收时减小了内存碎片的产生;
		2、G1适用于新生代和老年代,而CMS只适用于老年代

总结	
    如果你想要最小化地使用内存和并行开销,请选Serial GC;
    如果你想要最大化应用程序的吞吐量,请选Parallel GC;
    如果你想要最小化GC的中断或停顿时间,请选CMS GC	

    新生代收集器: Serial、 ParNeW、Parallel Scavenge
    老年代收集器: Serial Old、 Parallel Old、 CMS
    整堆收集器:   G1

    -XX:+UseSerialGC:在新生代和老年代使用串行收集器
    -XX:+UseParNewGC:在新生代使用并行收集器
    -XX:+UseParallelGC :新生代使用并行回收收集器,更加关注吞吐量
    -XX:+UseParallelOldGC:老年代使用并行回收收集器
    -XX:ParallelGCThreads:设置用于垃圾回收的线程数
    -XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器
    -XX:ParallelCMSThreads:设定CMS的线程数量
    -XX:+UseG1GC:启用G1垃圾回收器

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值