导读:近期更新了《卡表》的相关内容,包括《老年代频繁更新引用新生代时,卡表维护到底会带来多大性能损耗?》、《怎么排查老年代引用年轻代对象时通过卡表与记忆集规避全堆扫描的机制》。如果 卡表 对你有帮助,请转发和分享本内容。知识因分享而拥有更大能量,感谢您成为这传播链条中的重要一环。
老年代频繁更新引用新生代时,卡表维护到底会带来多大性能损耗? 把老年代对象里某个字段重新指向一个新创建的新生代实例,这条赋值指令在HotSpot里并不只是改个指针。写屏障会拦截这次写操作,算出被修改对象所在的卡页编号,再把卡表对应字节标记为脏。当老年代大面积、高频地替换对年轻对象的引用,卡表会产生大量脏卡,每次Young GC前必须扫... 栏目:Java 时间:08-02 卡表 跨代引用 GC性能
怎么排查老年代引用年轻代对象时通过卡表与记忆集规避全堆扫描的机制 在JVM垃圾回收过程中,年轻代回收时需要判断对象是否被老年代引用,如果全堆扫描老年代会严重影响回收效率。卡表和记忆集就是用来解决这个问题的核心机制,通过记录老年代对年轻代的区域引用关系,避免无差别扫描整个老年代。很多开发者在排查GC性能问题时,不清楚如何验证卡表和... 栏目:Java 时间:07-08 卡表 记忆集 老年代引用年轻代 全堆扫描 JVM垃圾回收