1. Serial

  young generation

  “单线程”收集器,是指进行垃圾收集时,必须暂停其他所有工作线程,直到收集结束。是历史最悠久的收集器。

2. Serial Old

  tenured generation

  Serial收集器的老年代版本,用途:可与Parallel Scavenge搭配使用;作为CMS收集器的后备预案。

3. ParNew

  young generation

  是Serial收集器的多线程版本。青年代收集时不需要stop the world。

  调优参数:

    -XX:SurvivorRatio

    -XX:PretenureSizeThreshold

    -XX:HandlePromotionFailure

4. Parallel Scavenge

  young generation

  GC自适应调优算法,注重吞吐量

  调优参数:

    -XX:GCTimeRatio    垃圾收集时间站总时间的比率,吞吐量的倒数

    -XX:MaxGCPauseMillis  最大垃圾收集停顿时间

5. Parallel Old

  tenured generation

  Parallel Scavenge收集器的老年代版本,使用多线程的标记整理算法。

  在注重吞吐量以及CPU资源敏感的场合,都可使用Parallel Scavenge与Parallel Old组合

  

6. CMS

  tenured generation

  一种以获得最短回收停顿时间为目标的收集器。

    -XX:+UseConcMarkSweepGC     打开CMS

7. G1

垃圾收集器常用参数:

参数                     描述                                            
UseSerailGC  
UseParNewGC  
UseConcMarkSweepGC  
UseParallelGC  
SurvivorRatio 新生代中Eden区与Survivor区的容量比例,默认为8,Eden:Survivor=8:1
PretenureSizeThreshold 晋升至老年代对象大小,大于则在老年代分配
MaxTenuringThreshold 晋升至老年的年龄,经过一次Minor GC则加1,大于则进老年代
UseAdaptiveSizePolicy 动态调整个区域大小及进入老年代年龄
HandlePromotionFailure  
ParallelGCThreads 并行GC内存回收线程数
GCTimeRatio GC时间占总时间比率,默认99,即允许1%的GC时间。仅在Parallel Scavenge收集器生效
MaxGCPauseMillis GC最大停顿时间。仅在Parallel Scavenge收集器生效
CMSInitiatingOccupancyFraction CMS在年老代被使用多少后触发GC。默认68%,仅CMS
UseCMSCompactAtFullCollection CMS收集后是否进行内存碎片整理,仅CMS
CMSFullGCsBeforeCompaction CMS进行若干次收集后才进行内存碎片整理
   

Java-GC垃圾收集器的更多相关文章

  1. JAVA GC垃圾收集器的分析

    本篇文章主要介绍了"JAVA GC垃圾收集器的分析",主要涉及到JAVA GC垃圾收集器的分析方面的内容,对于JAVA GC垃圾收集器的分析感兴趣的同学可以参考一下.       ...

  2. java - GC垃圾收集器详解(一)

    概要 该图标记了在jdk体系中所使用到的垃圾收集器及对应的关系图.图片上方为年轻代的垃圾收集器而图片下方是老年代的垃圾收集器.当选择某一个区域的垃圾收集器时会自动选择另外一个区域的另一个垃圾收集器.例 ...

  3. java - GC垃圾收集器详解(三)

    以前收集器的特点 年轻代和老年代是各自独立且连续的内存块 年轻代收集必须使用单个eden+S0+S1进行复制算法 老年代收集扫描整个老年代区域 都是以尽可能少而快速地执行GC为设计原则 G1是什么 G ...

  4. java - GC垃圾收集器详解(二)

    CMS收集器 CMS收集器(ConcurrentMarkSweep:并发标记清除)是一种以获取最短回收停顿时间为目标的收集器. 适合应用在互联网站或者B/S系统的服务器上,这类应用尤其重视服务器的响应 ...

  5. Java虚拟机垃圾收集器与内存分配策略

    Java虚拟机垃圾收集器与内存分配策略 概述 那些内存须要回收,什么时候回收.怎样回收是GC须要完毕的3件事情. 程序计数器.虚拟机栈与本地方法栈这三个区域都是线程私有的,内存的分配与回收都具有确定性 ...

  6. [转] 深入理解Java G1垃圾收集器

    [From] https://www.cnblogs.com/ASPNET2008/p/6496481.html 深入理解Java G1垃圾收集器 本文首先简单介绍了垃圾收集的常见方式,然后再分析了G ...

  7. JVM学习笔记——GC垃圾收集器

    GC 垃圾收集器 Java 堆内存采用分代回收算法,因此 JVM 针对新生代和老年代提供了多种垃圾收集器. 1. Serial 收集器 Serial 收集器是单线程收集器,采用复制算法. 是最基本的垃 ...

  8. 深入理解 Java G1 垃圾收集器--转

    原文地址:http://blog.jobbole.com/109170/?utm_source=hao.jobbole.com&utm_medium=relatedArticle 本文首先简单 ...

  9. Java GC收集器配置说明

    根据Java GC收集器具体分类,我们可以看出JVM根据需求不同提供了三种选择:串行收集器.并行收集器.并发收集器. 串行收集器只适用于小数据量的情况,我们主要了解一下并行收集器和并发收集器.默认情况 ...

  10. 深入理解java虚拟机【Java虚拟机垃圾收集器】

    Java堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法,年老代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK ...

随机推荐

  1. 以打字形式展示placeholder的插件

    http://weber.pub/以打字形式展示placeholder的插件/197.html

  2. python真值表

    author:headsen chen  date :2018-06-01  10:53:39 notice:not allowed to copy or you will count law que ...

  3. go练习1-翻转字符串

    //翻转字符串 func T1_1() { str := "你好helloworld!" fmt.Println("翻转前", str) var ret str ...

  4. JavaIo编程基础复习

    什么是Io io是指Input和Output,指输入和输出 Input是指外部读入数据到内存,例如读取一个文件,或者从网络中读取 Output是指把内存中的数据输出到外部,例如写文件,输出到网络 什么 ...

  5. 后端程序员如何玩转AJAX

    1.原生的Ajax入门 (感觉很是繁琐,所以一般我们都是用简单的方式) 创建一个核心对象 XMLHttpRequest var xmlhttp; if (window.XMLHttpRequest) ...

  6. angular4 常用pipe管道

    angular中的pipe是用来对输入的数据进行处理,如大小写转换.数值和日期格式化等. 常用的pipe有 1. 大小写转换 <p>{{str | uppercase}}</p> ...

  7. IE edge是怎么了??

    IE edge 怎么不能通过$.getJSON(url,function(data){ alert(''); });获取数据呢?,其他浏览器和IE的10以下版本都没问题获取到了,这是什么情况!本来是想 ...

  8. js 模拟 select 的 click 事件

    法一. 你可以直接通过修改 select 的 size 属性来实现,但是这样比较丑,很明显:原来: 修改 size: 跟原生比丑在两点: 位置上移了 滚动条出现了 法二. 比较好的实现,就是通过 js ...

  9. 获取 js DOM元素中绑定的所有事件,模仿 chrome getEventListeners

    偶尔看到了这个问题,如何用JS获取元素某一事件上绑定的所有Listener? 突然觉得好像是有解决办法的,查了下,在 chrome 下,支持 window.getEventListeners(obj) ...

  10. 170317、到底什么时候该使用MQ?

    一.缘起 一切脱离业务的架构设计与新技术引入都是耍流氓. 引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题. 就像微服务分层架构之前,应该首先回答,为什么要引入微服务,微服务究竟解决什么问 ...