垃圾收集器 参阅<<深入理解JAVA虚拟机>>
一、新生代
1、Serial收集器
新生代单线程复制算法GC(暂停工作线程)----------
支持组合老年代Serial odl和CMS
2、ParNew
Serial多线程版本
支持组合cms|serial old
3、Parallel Scavenge
可控吞吐量-XX:MaxGCPauseMillis 最大垃圾收集停顿时间
-XX:GCTimeRatio: 设置吞吐量大小
支持Serial old和Parallel Old
4、G1
新生代多线程并行复制算法(暂停工作线程)----------老年代单线程标记整理算法(暂停工作线程)
二、老年代
1、Serial OLD(标记-整理)
2、Parallel Old(标记-整理)
3、CMS收集器(标记-清除)
分为4个步骤
初始标记(STW)->并发标记->重新标记(STW)->并发清除
初始标记需要标记一下能gc ROOTS关联到的对象,并发标记就是进行GC ROOTS tracing的过程,
而重新标记为了修正并发标记阶段用户程序运行导致标记标记发生变动的那一部分对象的标记记录,停顿时间比初始标记长比并发标记远短
缺点:对CPU敏感 线程数(Cnum + 3)/4,无法处理浮动垃圾,碎片化
G1并行与并发标记整理
垃圾收集器 参阅<<深入理解JAVA虚拟机>>的更多相关文章
- 深入理解java虚拟机【Java内存结构】
		
Java虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下: 其中方法区和堆是由所有线程共享的数据区. Java虚拟机栈,本地方法栈和程序计数器是线程隔离的数据区. (1 ...
 - (转)《深入理解java虚拟机》学习笔记1——Java内存结构
		
java虚拟机规范规定的java虚拟机内存其实就是java虚拟机运行时数据区,其架构如下: 其中方法区和堆是由所有线程共享的数据区. Java虚拟机栈,本地方法栈和程序计数器是线程隔离的数据区. (1 ...
 - 深入理解java虚拟机----->垃圾收集器与内存分配策略(下)
		
1. 前言 内存分配与回收策略 JVM堆的结构分析(新生代.老年代.永久代) 对象优先在Eden分配 大对象直接进入老年代 长期存活的对象将进入老年代 动态对象年龄判定 空间分配担保 2. 垃圾 ...
 - 深入理解java虚拟机之垃圾收集器
		
Java一个重要的优势就是通过垃圾管理器GC (Garbage Collection)自动管理和回收内存,程序员无需通过调用方法来释放内存.也因此很好多的程序员可能会认为Java程序不会出现内存泄漏的 ...
 - 《深入理解Java虚拟机》(三)垃圾收集器与内存分配策略
		
垃圾收集器与内存分配策略 详解 3.1 概述 本文参考的是周志明的 <深入理解Java虚拟机>第三章 ,为了整理思路,简单记录一下,方便后期查阅. 3.2 对象已死吗 在垃圾收集器进行回收 ...
 - 《深入理解Java虚拟机》(六)堆内存使用分析,垃圾收集器 GC 日志解读
		
堆内存使用分析,GC 日志解读 重要的东东 在Java中,对象实例都是在堆上创建.一些类信息,常量,静态变量等存储在方法区.堆和方法区都是线程共享的. GC机制是由JVM提供,用来清理需要清除的对象, ...
 - 《深入理解java虚拟机》第三章 垃圾收集器与内存分配策略
		
第三章 垃圾收集器与内存分配策略 3.1 概述 哪些内存需要回收 何时回收 如何回收 程序计数器.虚拟机栈.本地方法栈3个区域随线程而生灭. java堆和方法区的内存需要回收. 3.2 对象已死吗 ...
 - 深入理解Java虚拟机:垃圾收集器与内存分配策略
		
目录 3.2 对象已死吗 判断一个对象是否可被回收 引用类型 finalize() 回收方法区 3.3. 垃圾收集算法 1.Mark-Sweep(标记-清除)算法 2.Copying(复制)算法 3. ...
 - 《深入理解 Java 虚拟机》学习 -- 垃圾收集器
		
<深入理解 Java 虚拟机>学习 -- 垃圾收集器 1. Serial 收集器(新生代) 含义: 单线程收集器. 缺点: 进行垃圾收集时,必须暂停其他所有的工作线程. 优点: 简单而高效 ...
 
随机推荐
- 我是一个Dubbo数据包...
			
hello,大家好呀,我是小楼! 今天给大家带来一篇关于Dubbo IO交互的文章,本文是一位同事写的文章,用有趣的文字把枯燥的知识点写出来,通俗易懂,非常有意思,所以迫不及待找作者授权然后分享给大家 ...
 - 第1章 C++绪论
			
写于2022年5月13日: 开通博客用于学习记录分享及交流. C++复习笔记内容参考教材[双语版C++程序设计(第2版)][(爱尔兰)Paul Kelly(P. 凯利),苏小红]. 本书的网站:htt ...
 - 【Redis】集群故障转移
			
集群故障转移 节点下线 在集群定时任务clusterCron中,会遍历集群中的节点,对每个节点进行检查,判断节点是否下线.与节点下线相关的状态有两个,分别为CLUSTER_NODE_PFAIL和CLU ...
 - 打字速度单位WPM、KPM定义与计算方法
			
国际通行的打字速度单位是WPM,用来量度打字速度的快慢.另外还有相关的KPM.CPM.KPH等打字速度单位,下面一一介绍. ----WPM------------------------------- ...
 - Spring框架 - Spring和Spring框架组成
			
Spring框架 - Spring和Spring框架组成 Spring是什么?它是怎么诞生的?有哪些主要的组件和核心功能呢? 本文通过这几个问题帮助你构筑Spring和Spring Framework ...
 - 『忘了再学』Shell流程控制 — 38、while循环和until循环介绍
			
目录 1.while循环 2.until循环 1.while循环 对while循环来讲,只要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止.和for循环的第二种格式for((初始 ...
 - 基于Vue2.x的前端架构,我们是这么做的
			
通过Vue CLI可以方便的创建一个Vue项目,但是对于实际项目来说还是不够的,所以一般都会根据业务的情况来在其基础上添加一些共性能力,减少创建新项目时的一些重复操作,本着学习和分享的目的,本文会介绍 ...
 - Windows 通过本地计算机IP链接Mysql设置
			
前言 1.Mysql-1130错误:无法远程连接 错误:ERROR 1130: Host '192.168.1.3' is not allowed to connect to thisMySQL se ...
 - kubernetes之ingress探索实践
			
3.Ingress实践 3.1.什么是Ingress? 在ingress之前,我们想要访问k8s集群中的pod服务时,是通过部署一个service,将service的type设置为NodePort或者 ...
 - DTCC 干货分享:Real Time DaaS - 面向TP+AP业务的数据平台架构
			
2021年10月20日,Tapdata 创始人唐建法(TJ)受邀出席 DTCC 2021(中国数据库技术大会),并在企业数据中台设计与实践专场上,发表主旨演讲"Real Time Daa ...