首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于预写障碍g1 gc的几个问题

关于预写障碍g1 gc的几个问题
EN

Stack Overflow用户
提问于 2020-01-17 08:26:59
回答 1查看 334关注 0票数 2

当jvm中的引用被更改时,我被告知,使用g1 gc将插入预写屏障以相应地更改记忆集,但是代码在哪里呢?我检查字节代码的实现,如腐静态,但我找不到在哪里发生预障碍?g1 gc在哪里和如何插入预写屏障?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-17 21:16:15

从Holger的评论中可能已经很明显了,但是这将不会出现在字节码级别,而是由JIT生成的。

最好的解释是源代码本身,在某些情况下是极好,有时非常清楚:

G1还需要跟踪不同区域之间的对象引用,以便对旧区域进行疏散,这是混合集合的一部分。引用在记忆集中被跟踪,并作为引用不断更新,是编写的,在后屏障的帮助下完成。

您还可以找到记住的集合例如,是,或者它们是如何构造的。

这里C2编译器使用的post_barrier方法。虽然我可以从该源代码中理解一些事情,但有些东西对我来说太复杂了,因此,我很乐意阅读该代码:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59783600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档