VM 垃圾收集器有3类,这里主要介绍我们常用的 并行和并发收集器:
The Throughput Collector (也叫并行收集器)
串行收集器在GC时会停止其他所有工作线程(stop-the-world),CPU利用率是最高的,所以适用于要求高吞吐量(throughput)的应用,但停顿时间(pause time)会比较长,所以对web应用来说就不适合,因为这意味着用户等待时间会加长。而并行收集器可以理解是多线程串行收集,在串行收集基础上采用多线程方式进行GC,很好的弥补了串行收集的不足,可以大幅缩短停顿时间(如下图表示的停顿时长高度,并发比并行要短),因此对于空间不大的区域(如young generation),采用并行收集器停顿时间很短,回收效率高,适合高频率执行。
The Concurrent Low Pause Collector(也叫并发收集器)
并发收集器GC时GC线程和应用线程大部分时间是并发执行,只是在初始标记(initial mark)和二次标记(remark)时需要stop-the-world,这可以大大缩短停顿时间(pause time),所以适用于响应时间优先的应用,减少用户等待时间。由于GC是和应用线程并发执行,只有在多CPU场景下才能发挥其价值,在执行过程中还会产生新的垃圾floating garbage,如果等空间满了再开始GC,那这些新产生的垃圾就没地方放了,这时就会启动一次串行GC,等待时间将会很长,所以要在空间还未满时就要启动GC。mark和sweep操作会引起很多碎片,所以间隔一段时间需要整理整个空间,否则遇到大对象,没有连续空间也会启动一次串行GC。采用此收集器(如tenured generation),收集频率不能大,否则会影响到cpu的利用率,进而影响吞吐量。
针对年轻代和年老代,收集器的设置参数也是有区别的,如下:
the following collectors operate on the young generation:
-XX:+UseSerialGC
-XX:+UseParallelGC
-XX:+UseParNewGC
the following collectors operate on the old generation:
-XX:+UseParallelOldGC
-XX:+UseConcMarkSweepGC
同一代的参数只能设置一个,-XX:+UseParNewGC和-XX:+UseConcMarkSweepGC是推荐的一个组合。
ava GC日志可以通过 +PrintGCDetails开启
以ParallelGC为例
YoungGC日志解释如下
FullGC:
- 大小: 24.5 KB
- 大小: 38.1 KB
- 大小: 88.3 KB
- 大小: 134.3 KB
分享到:
相关推荐
深入理解JVM垃圾收集算法与垃圾收集器
包含7种JVM垃圾收集器 详细对比7种垃圾收集器优缺点 全面讲解JVM垃圾收集器
直通BAT必考题系列:7种JVM垃圾收集器特点,优劣势、及使用场景。
7种JVM垃圾收集器特点-优劣势-及使用场景.pdf
学习JVM垃圾回收我们应该知道" Stop The World",STW会伴随任何一种GC算法中发生,STW意味着JVM因为要执行GC而停止了应用程序的执行,当 当Stop-the-world发生时除了GC所需的线程以外,所有线程都处于等待状态,直到...
本文主要介绍了JVM垃圾收集器的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
1.5CMS(Current Mark Sweep)收集器 1.6G1收集器 第六节:JVM参数调优 1.1 JVM重要参数介绍 1.2JVM参数调优 1.3JVM参数设置思路1.4JVM调优常用指令说明 第七节:JVM项目实战 1.1案例背景 1.2排查步骤 1.3....
1.垃圾收集器 1. -XX:+UseConcMarkSweepGC:启用cms 2. -XX:ConcGCThreads:并发的GC线程数 3. -XX:+U
JVM初探- 内存分配、GC原理与垃圾收集器,从从提上讲解了jvm中GC的原理、基本的算法和针对不同内存区使用的算法,同时,详细的讲解了当前主要使用的垃圾收集器
JVM垃圾回收器和内存分配策略
该文档总结了JVM主要的七种垃圾回收器特点与区别,分别描述了他们作用于堆内存的哪些区域,采用单线程还是多线程工作方式,在运行过程中是否需要暂停其他用户工作线程。是笔者对周志明老师的《深入理解java虚拟机》...
得出:随着JVM的发展,默认垃圾收集器变得越来越好了。JDK 1.2及以后版本所使用的分代垃圾收集器提供了比早期JDK所使用的标记-清除-整理收集器好得多的分配和收集性能。JDK 1.4.1通过增加新的针对多处理器系统和非常...
Jvm垃圾回收机制 by linux_14胡嘉辉1.如何确定某个对象是“垃圾”? 2.典型的垃圾收集算法3.典型的垃圾收集器
垃圾回收系列(3):CLR与JVM垃圾回收器的比较扫描.pdf
JVM垃圾回收器和内存分配策略
自己学习总结JVM垃圾回收机制的结构图,一起分享!!!
JVM垃圾回收器思维导图.docx
Jvm调优案例之大字段和垃圾收集器
JVM垃圾回收器工作原理及使用实例介绍Java开发Java经验技巧共15页.pdf.zip
垃圾回收器与JVM性能监控工具介绍垃圾回收器与JVM性能监控工具介绍ppt。