![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
紫荆-往往
这个作者很懒,什么都没留下…
展开
-
jvm垃圾回收的三色标记法
在上面文章中已经提到CMS的垃圾收集构成分为初始标记、并发标记、重新标记、并发清理等过程,其中初始标记和重新标记会STW(stop the world)暂停其他线程,在并发标记和并发清理时会与应用线程同时进行。CMS是采用三色标记法来进行垃圾的收集:三色标记即是用三种三色来标记对象的引用情况:黑色标记:表示此对象及其所有的引用都已经被扫描过,表明这个对象是存活的,肯定不会被垃圾回收;灰色标记:表示此对象被垃圾回收器扫描过,但是这个对象上的引用还没有被完全扫描即存在没有被扫描的对象引用(至少一个),灰色标原创 2020-08-21 17:28:28 · 1152 阅读 · 0 评论 -
JVM垃圾收集器介绍(二)-G1
@[TOC](G1垃圾收集器)G1垃圾收集器G1(Garbage-First):此垃圾收集器跟CMS的垃圾收集过程很相似,但是G1垃圾收集器不存在年轻代和老年代的严格的内存大小划分,只是在逻辑上还保留年轻代、老年代,同时增加了大对象区(针对占用内存较大的对象独立存放),其主要结构图为:从图中可以看出每个类型的内存都可以不连续,图中每个小格子就是一块内存区域region,默认region为2M,可通过参数-XX:G1HeapRegionSize进行调整region大小(不建议),故格子的个数=堆内存/原创 2020-08-18 21:30:55 · 160 阅读 · 0 评论 -
JVM垃圾收集器介绍(一)
JVM垃圾收集器一、垃圾收集算法1、标记复制法2、标记清理法3、标记整理法二、垃圾收集器1、serial2、Parallel Scavenge3、ParNew4、CMSJVM垃圾收集器器主要有serial、parallel scavenge、parNew、CMS、G1、zgc、shenandoah等垃圾收集器,本次主要介绍serial、parallel scavenge、parNew、CMS垃圾收集器。在介绍垃圾收集器之前先介绍下垃圾收集的算法一、垃圾收集算法1、标记复制法标记复制法即是将内存分为原创 2020-08-17 17:02:55 · 99 阅读 · 0 评论 -
JVM垃圾分代收集理论
JVM垃圾分代收集对象存储规则对象动态年龄判断大对象可能直接进入到老年区老年代空间分配担保机制对象内存回收判断JVM常用参数本章主要介绍下jvm的垃圾分代收集理论,jvm在cms之前的收集都是基于年轻代、老年代内存进行垃圾收集,其中年轻代分为eden区、s1区、s2区,老年代为old区,故堆内存主要分为eden、s1、s2、old区,eden:s1:s2的默认内存比为8:1:1,old区的内存=堆内存-eden-s1-s2内存,其默认分代年龄为15。对象存储规则1)新对象进来首先进入eden区,当ed原创 2020-08-14 11:22:00 · 377 阅读 · 0 评论 -
java JVM内存结构
jvm内存结构释义1、heap堆内存2、方法区3、stack栈内存4、程序计数器5、本地方法栈1、heap堆内存heap是java所有线程共享的内存区域,其存放的是基本是java所有的对象实例及数组(当然逃逸分析+标量替换技术会根据场景在线程栈上存放对象信息),对象存储信息主要包含三部分(mark word、实例数据、对齐填充),从垃圾回收角度看,heap堆也是其垃圾回收(gc)的主要内存区域,其堆内存基于分代理论进行划分,主要划分为:新生代(eden、s1、s2区)、老年代(old区)。从对象内存分原创 2020-08-13 17:48:57 · 135 阅读 · 0 评论