JVMGC——垃圾收集器的分类

来源:互联网 发布:远程桌面控制软件 编辑:程序博客网 时间:2024/05/06 12:17

垃圾收集器是垃圾回收算法的体现

JVM中垃圾收集器分为三类:

1.串行收集器       2.并行收集器      3.并发收集器

串行收集器


用单线程处理所有垃圾回收工作,因此无需多线程交互,所以效率比较高

适合单处理器机器。串行垃圾回收时会暂停程序

-XX:+UseSerialGC


并行收集器

 

对年轻代进行并行垃圾回收

-XX:+UseParallelGC

 

并行收集器在jdk5开始引入,jdk6进行了增强—可以对年老代进行并行收集。

(对年老代并行收集)

-XX:+UseParallelOldGC  

 

设置并行垃圾回收的线程数

-XX:ParallelGCThreads=<N>  


并发收集器:

 

可以保证大部分工作都并发进行(应用不停止)

适合对响应时间要求比较高的中、大规模应用

-XX:UseConcMarkSweepGC


1. Serial收集器 ——  -XX:+UseSerialGC

单线程会收集器,收集时会暂停所有工作线程,使用复制收集算法,在虚拟机运行在Client模式默认的新生代收集器

2. ParNew收集器 ——  -XX:+UseParNewGC

Serial的多线程版本,虚拟机运行在Server模式的默认新生代收集器

3. Parallel Scavenge收集器(PS收集器) ——  -XX:+UseParallelGC

多线程收集器,也是使用复制算法,以吞吐量最大化(GC时间占总运行时间最小)为目标,是新生代收集器

4. Serial Old收集器

单线程收集器,使用标记-整理算法,是老年代的收集器

5. Parallel Old收集器  ——    -XX:+UseParallelOldGC

年老代吞吐量优化收集器,使用多线程和标记-整理


没有最好的收集器,只有最合适的收集器,根据实际场景选择合适的收集器才是王道

0 0
原创粉丝点击