Java VM如何在MT上下文中处理缓存行和内存对齐?

| 按照主题,如果在C / C ++中容易找到高速缓存行大小并在开发有效的MT代码时轻松地解决此问题,那么Java VM如何处理呢? 干杯     
已邀请:
        通常不会。您必须自己解决这个问题。如果确实很重要,则可能必须使用JNI来获取有关系统的低级详细信息。 另一方面,Java从一开始就通过支持该语言来简化MT应用程序的编写。     
        从Java 8开始,Java很有可能开始处理此问题。JEP142指出:   当两个不同内核使用的两个内存位置最终出现在同一高速缓存行上并且至少一个内核正在执行写操作时,就会发生内存争用。对于竞争激烈的内存位置,这可能是严重的性能和可伸缩性问题。进行此增强的目的是避免内核之间的内存争用,至少在我们在开发过程中可以轻松识别的字段上避免。 有证据表明,这实际上是在发生,并且不是蒸气制品。     

要回复问题请先登录注册