
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
垃圾回收是我们在学习java编程开发的时候需要重点掌握的技术知识之一,下面我们就一起来了解一下,常见的几种垃圾回收工具都有哪些。
Serial收集器
单线程用标记-复制算法,快刀斩乱麻,单线程的好处避免上下文切换,早期的机器,大多是单核,也比较实用。但执行期间,会发生STW(StopTheWorld)。
ParNew收集器
Serial的多线程版本,同样会STW,在多核机器上会更适用。
ParallelScavenge收集器
ParNew的升级版本,主要区别在于提供了两个参数:-XX:MaxGCPauseMillis大垃圾回收停顿时间;-XX:GCTimeRatio垃圾回收时间与总时间占比,通过这2个参数,可以适当控制回收的节奏,更关注于吞吐率,即总时间与垃圾回收时间的比例。
SerialOld收集器
因为老年代的对象通常比较多,占用的空间通常也会更大,如果采用复制算法,得留50%的空间用于复制,相当不划算,而且因为对象多,从1个区,复制到另1个区,耗时也会比较长,所以老年代的收集,通常会采用“标记-整理”法。从名字就可以看出来,这是单线程(串行)的,依然会有STW。
ParallelOld收集器
一句话:SerialOld的多线程版本。
CMS收集器
全称:ConcurrentMarkSweep,从名字上看,就能猜出它是并发多线程的。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。