通过修改对象头掩码字中的位来固定对象
Pinning an object by modifying bits in mask word of object header
我想知道是否可以通过自己设置对象头的标记字中的一位(试图欺骗 GC)来防止对象被 GC 移动。
所以基本上我想知道这种方式是否可以确保标记的对象始终具有相同的内存地址。
不,HotSpot JVM 不支持object任何形式的固定,即使在 JVM 内部也是如此。
请勿尝试修改 object header。否则 JVM 很可能会崩溃。 header 的内容可能因 JVM 版本、参数和所选的 GC 算法而异。 JVM 已完全控制 object header 并且尚未准备好进行外部更改。
我想知道是否可以通过自己设置对象头的标记字中的一位(试图欺骗 GC)来防止对象被 GC 移动。
所以基本上我想知道这种方式是否可以确保标记的对象始终具有相同的内存地址。
不,HotSpot JVM 不支持object任何形式的固定,即使在 JVM 内部也是如此。
请勿尝试修改 object header。否则 JVM 很可能会崩溃。 header 的内容可能因 JVM 版本、参数和所选的 GC 算法而异。 JVM 已完全控制 object header 并且尚未准备好进行外部更改。