关于预写屏障上的g1 gc的问题

问题描述 投票:1回答:1

我被告知在jvm中更改了引用后,使用g1 gc将插入pre write barrier来相应地更改记住集,但是代码在哪里?我检查了诸如putstatic之类的字节码实现,但是我找不到前置屏障的位置? g1 gc插入预写屏障的位置和剂量如何?

jvm jvm-hotspot g1gc
1个回答
0
投票

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

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

G1还需要跟踪不同区域之间的对象引用,以能够疏散旧区域,这是混合集合的一部分。在remembered sets]中跟踪引用,并在post-barrier的帮助下随着write引用的不断更新。

您还可以找到要记住的集are, for example或它们的构造方式。

herepost_barrier编译器使用的C2方法。虽然我可以从源代码中理解某些内容,但是有些对我来说太复杂了,因此喜欢阅读代码:)

© www.soinside.com 2019 - 2024. All rights reserved.