java垃圾回收器有哪些_java编程垃圾回收器都有哪些

我们在前几期的文章中给大家简单介绍了java编程开发语言垃圾回收算法等编程知识,而本文就再来了解一下,java编程垃圾回收器都有哪些。

两个概念:

并行:多条垃圾收集线程并行工作,用户线程处于等待状态。

并发:垃圾收集线程与用户线程同时执行。

1、Serial

单线程,新生代收集,复制算法,整个过程都会暂停所有工作线程。

2、ParNew

Serial的多线程版本。CMS默认的新生代收集器,也可以通过-XX:+UseParNewGC指定,-XX:ParalleGCThreads可设置线程数。

3、ParallelScavenge

多线程,新生代收集,复制算法,STW。

该收集器关注点与其他收集器不同,CMS等收集器关注点事尽可能地缩短停顿时间,而ParallelScavenge的目标是达到一个可控的吞吐量,吞吐量=运行用户代码的时间/(运行用户代码的时间+垃圾收集时间)。停顿时间越短越适合需要与用户交互的程序,高吞吐量则可以高效地利用CPU时间,尽快完成程序的运算任务,适合后台运算而不需要太多交互的任务。

相关参数:

-XX:MaxGCPauseMillis大垃圾收集停顿时间。收集器将尽可能保证内存回收花费的时间不超过设定值。GC停顿时间缩短是以牺牲吞吐量和新生代空间换取的:系统把新生代调小一些,停顿时间也就会短一些,但是垃圾收集也会发生的更频繁一些。

-XX:GCTimeRatio该参数的值应当是一个大于0小于100的整数。GC时间占比=1/(1+GCTimeRatio)。

-XX:+UseAdaptiveSizePolicy自适应调节策略,如果使用该参数,将不需要设置新生代大小、Eden与Survivor的比例、晋升到老年代对象的大小等细节参数,虚拟机会根据当前系统的运行情况收集性能监控信息,动态调整。

4、SerialOld

单线程,老年代收集,标记-整理算法,整个收集过程都会StopTheWorld。

两大用途:在jdk1.5之前,与ParallelScanvenge搭配使用;作为CMS收集器的后备预案,在并发收集发生

ConcurrentModeFailure时使用。

5、ParallelOld

多线程,老年代收集,标记-整理算法,STW。吞吐量优先,作为Parallel

助力2021高薪就业,Java实战项目来袭!林森老师带你重温经典,从Java角度解析坦克大战游戏~教你用键盘监控事件控制坦克移动、子弹发射等!原价499元,限时9.9元购买,邀请好友学习还可获得现金红包!上不封顶~

【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值