JVM
文章平均质量分 83
JVM
harmful_sheep
这个作者很懒,什么都没留下…
展开
-
G1垃圾回收器
总结下,我们可以列出一些关于G1收集器在年老代的上关键点。并发标记阶段当应用运行时,并发的计算活性信在疏散暂停期间,活性信息鉴定哪些区被最好的回收没有像CMS一样的清除操作重新标记阶段使用比在CMS中使用的算法更快的Snapshot-at-the-Beginning(SATB)算法完全空的区域会被回收掉复制/清理阶段年轻代和年老代被同时回收年老代区域基于它们的活性被选择当Java虚拟机在Survivor和晋升的对象垃圾回收期间,堆空间用光了就会发生晋升失败。原创 2024-05-08 10:15:28 · 966 阅读 · 0 评论 -
JVM内存分配策略
在虚拟机中,我们知道对象的内存是分配在堆中的。但是堆又可以划分为更小的区域以便垃圾回收,那么,对象到底是怎么在分配在堆中的呢?原创 2024-05-08 10:00:51 · 202 阅读 · 0 评论 -
垃圾收集器与三色标记
原始快照就是当灰色对象要删除指向白色对象的引用关系时, 就将这个要删除的引用记录下来, 在并发扫描结束之后, 再将这些记录过的引用关系中的灰色对象为根, 重新扫描一次,这样就能扫描到白色的对象,将白色对象直接标记为黑色(目的就是让这种对象在本轮gc清理中能存活下来,待下一轮gc的时候重新扫描,这个对象也有可能是浮动垃圾)增量更新就是当黑色对象插入新的指向白色对象的引用关系时, 就将这个新插入的引用记录下来, 等并发扫描结束之后, 再将这些记录过的引用关系中的黑色对象为根, 重新扫描一次。原创 2024-04-25 17:41:54 · 704 阅读 · 1 评论 -
JVM对象创建于内存分配
大量的对象被分配在eden区,eden区满了后会触发minor gc,可能会有99%以上的对象成为垃圾被回收掉,剩余存活的对象会被挪到为空的那块survivor区,下一次eden区满了后又会触发minor gc,把eden区和survivor区垃圾对象回收,把剩余存活的对象一次性挪动到另外一块为空的survivor区,因为新生代的对象都是朝生夕死的,存活时间很短,所以JVM默认的8:1:1的比例是很合适的,让eden区尽量的大,survivor区够用即可,而在JAVA中对象就是可以被进一步分解的聚合量。原创 2024-04-25 14:17:16 · 828 阅读 · 1 评论