GC
初心江湖路
多学一分增一分。
展开
-
细数G1GC
G1GC相当复杂,一篇文章的话很难说清楚,并且长篇冗杂,难读。本文旨在将G1GC中的部分点Get到,也很难全面,如果错误,请帮忙指正,多谢。 一、G1GC的目的 针对服务器应用(大heap内存、多核)进行垃圾收集,为了同时兼顾吞吐量和停顿时间而生。 二、特点 分区、分代、适用多核大heap内存、高吞吐、低停顿 三、如何实现对吞吐量和停顿时间的兼顾 1、技术手段 1)region划分 将整个he...原创 2019-12-06 16:41:55 · 385 阅读 · 0 评论 -
Java应用怎么选择使用哪种GC
1、收集器的类型 (1)、串行收集器,使用单线程执行全部垃圾回收工作 (2)、并行收集器,使用多线程并行执行垃圾回收工作 (3)、并发收集器,垃圾回收工作中大多数部分执行时是和应用程序并发执行 2、各自适用的场景 (1)对于串行收集器,专门针对单处理器小数据应用,因为没有线程间通信(同步)开销,因而其效率高。 (2)对于并行收集器,minor垃圾收集使用多线程并行收集,人多力量大,所以很大程度上能...原创 2019-12-03 20:35:47 · 643 阅读 · 0 评论 -
JVM使用GC分代收集的原由
一、首先看两个衡量GC性能的指标 1、吞吐量 该指标表示程序占用CPU执行的时间(包含分配内存的时间,不包括GC时间)占总时间的百分比。 2、停顿时间 该指标表示程序不响应的时间(正在进行垃圾回收)。 吞吐量越大而停顿时间越小,表示GC性能越好。对于不同的应用有不同的需求,例如对于很多web应用来说,停顿时间太长会使用户明显感觉到卡顿,很影响用户体验。 二、于是,通常通过调整以下参数来获得需要的...原创 2019-12-02 21:00:48 · 178 阅读 · 0 评论 -
HotSpot虚拟机GC简单总结
具体的GC相关文章网络上很多,这里不去重复。本文简要总结GC算法和回收器。 一、GC算法 1、标记-清除 给对象做标记,进行标记后每个对象对应一个状态,死亡、存活。标记完成后将标记为死亡的对象清除。 2、标记-整理 和标记-清除相比多一个步骤,将标记为死亡的对象清除后,还要将存活的对象整理到一起(逻辑空间连续)。 3、复制 空间被分成两个部分,只使用其中一个部分进行对象分配。当用来存储新对象的空...原创 2019-09-11 23:47:47 · 334 阅读 · 0 评论