java中cpu缓存一致性对编程有什么帮助


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

相关推荐: Linux下怎么实现高并发socket最大连接数的配置

本篇内容介绍了“Linux下怎么实现高并发socket最大连接数的配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Linux操作系统,无论是编写客户端程序还是…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/15 22:19
下一篇 08/15 22:19

相关推荐