|
|
java中cpu缓存一致性对编程有什么帮助 |
|
作者:佚名 文章来源:本站原创 点击数: 更新时间:2023/10/24 2:48:03 | 【字体:小 大】 |
夫妻成长日记漫画bt本篇内容主要讲解“java中cpu缓存一致性对编程有什么帮助”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java中cpu缓存一致性对编程有什么帮助”吧!
因为对于short、int、long、以及小数组而言可能会跨2个cache line,这样cpu在读写时就要涉及到2个cache line,很明显这是低效的。至于这个问题在实际中如何解决,准备再单独写一篇关于java的解决方案。
在前面的数据空间局部性带来的效率差异测试中已经给出了测试结果,它说的是尽量将相邻的数据放在一个cache中并且按照连续空间进行访问。
在前面的java并发编程专题---伪共享中也给出了测试结果,它说的是在业务上没有数据竞争,但是在cpu底层执行时由于各自读写的数据在同一个缓存行中,从而导致大量的cache miss影响了执行效率。这里对文中使用volatile关键字再做个补充说明,对于java而言如果没有volatile关键字,由于变量之间没有竞争,即使在同一个缓存行中,各线程也只读写各自变量的缓存副本,这是由jvm的特性决定的。当加了volatile关键字就是要让数据与内存同步,如果各自读写的变量在同一个缓存行中,这个时候就可以用MESI缓存一致性原理来解释了,因为当本核的cache line有数据更新时,其它核中的cache line就是被置为无效,所以导致频繁的cache miss。
到此,相信大家对“java中cpu缓存一致性对编程有什么帮助”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
|
电脑内存录入:admin 责任编辑:admin |
|
上一个电脑内存: 内存条水条是什么意思 下一个电脑内存: 没有了 |
|
|
 栏目文章
|
|
|