当前位置: 首页 > 网络应用技术

在 - 深度理解Java虚拟机 - 写入障碍

时间:2023-03-05 23:13:34 网络应用技术

  当生成交叉代用引用时,卡表变得肮脏,而Java虚拟机通过编写障碍,即通过虚拟机将“参考类型字段分配”操作实现这一肮脏的过程,即“参考类型字段分配”操作。等级。在操作之前,该操作是在操作之前。代码称为“预写屏障”,操作后的代码称为“邮政障碍”,维护卡表使用“邮政写入屏障”。

  写作后,屏障维护卡表具有额外的开销,但是与次要GC阶段相比,价格相对较低。

  因为处理器的缓存系统是缓存行为单元存储,当相互独立变量的多线程修改时,这些变量具有相同的缓存线,这将影响性能。例如,缓存行为64 byte,card表元素占据字节,占据字节,然后64个卡表元素共享一个缓存线。这64个卡表元素对应于32KB内存。解决方案是首先检查卡表的标签。只有未经处理的情况就不会标记该值。

  JDK7之后,您可以决定是否打开卡表更新的条件。参数为

  开放将增加额外的判断开销,但可以避免伪造的共享问题。