dw做网站小技巧,产品推广网站哪个好,做h5的免费软件,基本网站建设知识JVM-GC-G1垃圾回收器
基本概念
card table card table概念是为了解决新生代对象进入老年代时#xff0c;在进行新生代扫描的时候会遍历老年代对象的问题。将内存分为多个card,如果在一个老年代card中存在引用新生代对象的对象#xff0c;则将该区域标记及为dirty card。 CS…JVM-GC-G1垃圾回收器
基本概念
card table card table概念是为了解决新生代对象进入老年代时在进行新生代扫描的时候会遍历老年代对象的问题。将内存分为多个card,如果在一个老年代card中存在引用新生代对象的对象则将该区域标记及为dirty card。 CSet(collection set) 用来记录可以被回收的card,即通过算法计算出垃圾多的card; RSet(RememberedSet) 它是一个HashMap记录其他Regin中的对象指向本Regin中的引用。这样不用扫描整个堆就可以知道当前谁引用了当前分区中的对象只需要扫描RSet即可。 MixedGC 当堆内存空间达到一定的阈值会触发MixedGC,和CMS回收步骤相似。这个阈值可以通过XX:InitiatingHeapOccupacyPercent参数设置默认45% G1的特点 只有逻辑分代的概念实际内存空间不再分代。因此内存中的空间可以属于新生代、老年代等任何一种。将内存分而治之将内存分块处理每块内存称为一个Region。garbage first,垃圾优先意思是优先回收垃圾数据多的内存块儿。并发收集吞吐量比PSPO低适用于不需要吞吐量的业务。 G1的回收阶段 YGC、MixedGC、FGC。G1的调优是尽量不要FGC。 G1如何解决漏标问题 SATB RSet解决漏标问题SATB(snapshot at the beginning):关注引用的删除如果一个灰色对象中的引用被删除JVM将此引用推向GC的堆栈中保证能被GC扫描到