Java-GC垃圾收集器

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垃圾收集器的更多相关文章
- JAVA GC垃圾收集器的分析
本篇文章主要介绍了"JAVA GC垃圾收集器的分析",主要涉及到JAVA GC垃圾收集器的分析方面的内容,对于JAVA GC垃圾收集器的分析感兴趣的同学可以参考一下. ...
- java - GC垃圾收集器详解(一)
概要 该图标记了在jdk体系中所使用到的垃圾收集器及对应的关系图.图片上方为年轻代的垃圾收集器而图片下方是老年代的垃圾收集器.当选择某一个区域的垃圾收集器时会自动选择另外一个区域的另一个垃圾收集器.例 ...
- java - GC垃圾收集器详解(三)
以前收集器的特点 年轻代和老年代是各自独立且连续的内存块 年轻代收集必须使用单个eden+S0+S1进行复制算法 老年代收集扫描整个老年代区域 都是以尽可能少而快速地执行GC为设计原则 G1是什么 G ...
- java - GC垃圾收集器详解(二)
CMS收集器 CMS收集器(ConcurrentMarkSweep:并发标记清除)是一种以获取最短回收停顿时间为目标的收集器. 适合应用在互联网站或者B/S系统的服务器上,这类应用尤其重视服务器的响应 ...
- Java虚拟机垃圾收集器与内存分配策略
Java虚拟机垃圾收集器与内存分配策略 概述 那些内存须要回收,什么时候回收.怎样回收是GC须要完毕的3件事情. 程序计数器.虚拟机栈与本地方法栈这三个区域都是线程私有的,内存的分配与回收都具有确定性 ...
- [转] 深入理解Java G1垃圾收集器
[From] https://www.cnblogs.com/ASPNET2008/p/6496481.html 深入理解Java G1垃圾收集器 本文首先简单介绍了垃圾收集的常见方式,然后再分析了G ...
- JVM学习笔记——GC垃圾收集器
GC 垃圾收集器 Java 堆内存采用分代回收算法,因此 JVM 针对新生代和老年代提供了多种垃圾收集器. 1. Serial 收集器 Serial 收集器是单线程收集器,采用复制算法. 是最基本的垃 ...
- 深入理解 Java G1 垃圾收集器--转
原文地址:http://blog.jobbole.com/109170/?utm_source=hao.jobbole.com&utm_medium=relatedArticle 本文首先简单 ...
- Java GC收集器配置说明
根据Java GC收集器具体分类,我们可以看出JVM根据需求不同提供了三种选择:串行收集器.并行收集器.并发收集器. 串行收集器只适用于小数据量的情况,我们主要了解一下并行收集器和并发收集器.默认情况 ...
- 深入理解java虚拟机【Java虚拟机垃圾收集器】
Java堆内存被划分为新生代和年老代两部分,新生代主要使用复制和标记-清除垃圾回收算法,年老代主要使用标记-整理垃圾回收算法,因此java虚拟中针对新生代和年老代分别提供了多种不同的垃圾收集器,JDK ...
随机推荐
- 如何使用iOS 开发证书 和 Profile 文件
如果你想在 iOS 设备(iPhone/iPad/iTouch)上调试, 需要有 iOS 开发证书和 Profile 文件. 在你拿到这两个文件之后,该如何使用呢? 证书使用说明: 1. iOS 开 ...
- Struts2使用struts标签判断变量是否为空的写法
<%@taglib uri="/struts-tags" prefix="s"%> <span id="viewOrgName&qu ...
- LeetCode 笔记系列16.3 Minimum Window Substring [从O(N*M), O(NlogM)到O(N),人生就是一场不停的战斗]
题目:Given a string S and a string T, find the minimum window in S which will contain all the characte ...
- SpringCloud--注册中心Eureka
Eureka的服务治理设计中,所有节点即是服务提供方,也是服务消费方. Eureka Server的高可用:就是将自己作为服务向其他服务注册中心注册自己,形成一组互相注册的服务注册中心,实现服务清单的 ...
- Jsp 公用标签库
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix=" ...
- 修改mysql root的秘密
修改mysql root的秘密 ');
- 2017 Multi-University Training Contest - Team 2——HDU6050 Funny Function
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6050 题意:题目很短自己看吧, 就是这个递推式子,说的很清楚了,让你求F(m,1).题解里面分什么奇偶 ...
- 拼团商品列表页 分析 js代码行位置对执行的影响和window.onload的原理 setTimeout传参
w TypeError : Cannot set property 'innerHTML' of nullTypeError : Cannot set property 'value' of null ...
- zipline风险指标计算 (empyrical模块)
概述 量化中,我们经常会遇到各种量化指标的计算,对于zipline来说,也会对这部分计算进行处理,由于指标计算的通用性比较强,所以,zipline单独封装了 empyrical 这个模块,可以处理类似 ...
- DtypeWarning: Columns (1,5,7,16,......) have mixed types. Specify dtype option on import or set low_memory=False.
DtypeWarning: Columns (1,5,7,16,......) have mixed types. Specify dtype option on import or set low_ ...