`
lemonhandsome
  • 浏览: 9976 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

伪共享

阅读更多

一、伪共享和CPU的缓存机制有关

二、cpu缓存结构

三、缓存是以行为单位存在在cache中的,通常而言,一个缓存行大概是64byte。对于java类而言,一个javalong的对象长度为8字节,因此一个缓存行就是8个long的长度。

四、对于位于同一个缓存行上的两个变量,被不同线程操作,会引起竞争消耗

五、解决方式

1、使用注解@sun.misc.Contended,且在jvm启动参数增加-XX:-RestrictContended

2、定义多个无效变量,用来填充隔离这两个变量

        volatile long x;
        //这些变量的存在,会使x,y位于不同的缓存行
        long p1, p2, p3, p4, p5, p6, p7;
        volatile long y;

 参考文章:https://blog.csdn.net/jjc4261/article/details/125486233

分享到:
评论

相关推荐

    缓存行和伪共享

    缓存行和伪共享

    Java中的伪共享详解及解决方案.docx

    Java中的伪共享详解及解决方案.docx

    【并发编程】 — 伪共享(False Sharing)底层原理及其解决方式

    文章目录1 什么是伪共享1.1 从疑问说起 — 难道JMM中不存在局部性原理???1.2 缓存行的概念1.3 伪共享(False Sharing)的概念 + 其可能引发的性能问题2 如何避免伪共享 — 数据填充2.1 不使用数据填充时的效率...

    论文研究-支持QoS服务的SCTP中伪共享问题的研究.pdf

    多流是流控制传输协议(SCTP)的一个重要特点,利用这个特点可以在同一个关联中传输不同优先级的...主要研究了伪共享对于SCTP性能的危害,并通过对SCTP拥塞系统的改进解决了伪共享问题,最后通过仿真实验进行了证实。

    Java 中的伪共享详解及解决方案

    主要介绍了Java 中的伪共享详解及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

    iocp udp 本机基准测试程序

    rupd_context的),防止出现多核机器上出现伪共享问题. 在自己机器上测试速度稳定达到16Gbit,叫上一版本较稳定(上一版本有较大波动). thread context switch 平局值在5W次左右,比起之前的20W此有非常大的提升,可以...

    分布式id生成器.zip

    采用RingBuffer来缓存已生成的UID, 并行化UID的生产和消费, 同时对CacheLine补齐,避免了由RingBuffer带来的硬件级「伪共享」问题. 最终单机QPS可达600万。 依赖版本:Java8及以上版本, MySQL(内置WorkerID分配...

    iocp udp 分布式队列无同步多核测试

    还没有测试的是chche伪共享造成的性能下降,在后面将测试. 设置代码中 DEFAULT_RUDP_BUFFER_SIZE = 32k(实际udp包远没有这么大),用vc6及vc8编译,在我的机器:thinkpad x200,(2.56G双核cpu,4G DDR3内存),win7 旗舰版,...

    多核计算与程序设计(2009年3月1日出版)第一二三部分

    本书是我从学校图书馆下的,出版时间: 2009-3-1。看本书之前最好先看《多任务下的数据结构与...本部分介绍的各种并行算法和程序中,重点介绍如何解决多核系统中的计算随CPU核数的扩展性,CPU Cache伪共享方面的问题。

    CLR.via.C#.(中文第3版)(自制详细书签)Part1

    · 构建、部署应用程序、组件和共享程序集,并对它们进行版本管理 · 理解基元类型、值类型和引用类型的行为,从而最高效地定义和使用它们 · 使用泛型和接口来定义可重用的算法 · 高效使用特定的CLR类型——委托、...

    CLR.via.C#.(中文第3版)(自制详细书签)

    26.10 缓存线和伪共享 第27章 I/O限制的异步操作 27.1 Windows如何执行I/O操作 27.2 CLR的异步编程模型(APM) 27.3 AsyncEnumerator类 27.4 APM和异常 27.5 应用程序及其线程处理模型 27.6 异步实现服务器 ...

    CLR.via.C#.(中文第3版)(自制详细书签)Part3

    · 构建、部署应用程序、组件和共享程序集,并对它们进行版本管理 · 理解基元类型、值类型和引用类型的行为,从而最高效地定义和使用它们 · 使用泛型和接口来定义可重用的算法 · 高效使用特定的CLR类型——委托、...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    · 构建、部署应用程序、组件和共享程序集,并对它们进行版本管理 · 理解基元类型、值类型和引用类型的行为,从而最高效地定义和使用它们 · 使用泛型和接口来定义可重用的算法 · 高效使用特定的CLR类型——委托、...

    多核编程入门

    3.2.3 伪共享 .................................................................................................................................... 21 3.3 顺序一致性 .......................................

    英特尔® C++编译器Cilk语言扩展.pdf

    英特尔® C++编译器Cilk语言扩展 ............................................................................................... 1 1. 介绍...................................................................

    PHP伪原创程序,亲测好用

    可以自己做一个同义词替换的网站程序。挺好用的,伪原创的原理:替换同义词。后台添加同义词,目前已有5000条。共享,免费使用

    asp.net 伪静态 源码

    asp.net 伪静态实例 资源共享 测试成功,有效!

    VB编写的伪原创工具 开放词典

    【使用说明】 本软件是站长进行伪原创的好工具。 本软件只进行简单的近义词替换,但提供了将近4万多条的近义词,并不断进行词组的更新。 其中包含了动词、名词、形容词等常用...有更多更好的词典,请共享给大家使用。

    74cms人才网iis7.0伪静态web.config

    74cms人才网iis7.0伪静态文件web.config。74cms官方没给。自己编写的。大家共享

    UrlReWrite(Url重写或伪静态)完美示例源码

    描 述:UrlReWrite(Url...然而这对于我们,没有很多的资金或使用的共享服务器,使得以上的方法都不是最佳的解决方案。幸而ASP.NET给我们提供了强大的可扩展性,能让我们自己定义页面的访问规则,很方便实现URL重写。

Global site tag (gtag.js) - Google Analytics