什么是虚假分享(False Sharing)?

错误共享是指当同时运行的两个应用程序试图访问每个程序或进程存储在其自身缓存中的同一逻辑内存区域中的信息时,计算机程序中可能会出现这种情况。每个应用程序的缓存中的数据都是从同一个源复制的,因此修改一个缓存会...
错误共享是指当同时运行的两个应用程序试图访问每个程序或进程存储在其自身缓存中的同一逻辑内存区域中的信息时,计算机程序中可能会出现这种情况。每个应用程序的缓存中的数据都是从同一个源复制的,因此修改一个缓存会导致另一个必须从源重新加载。当一个程序对缓存线所做的更改实际上没有影响第二个程序正在使用的数据时,共享的错误方面就会出现,在这种情况下,强制重新加载缓存是对系统资源的浪费,并且会对程序的性能产生负面影响。错误共享的问题很难检测到,因为它不是应用程序中包含的任何代码的直接结果,尽管有防止错误共享的有效方法,例如,将当前缓存行中的数据移动到另一行。手持计算机错误共享发生的主要原因是操作系统或硬件如何处理读写数据。当程序读取或写入来自硬盘或其他源的信息时,它通常被加载到一个临时缓存中以便快速访问。从源位置缓存的信息量称为缓存线,是一个逻辑内存块,通常长度在2字节到256字节之间。在某些操作系统或系统架构下,程序可以在同时,如在并行处理中这意味着两个独立的程序有可能试图访问同一缓存线中的信息,因此每个程序都将拥有自己的源数据副本,这可能导致一个缓存中的更改不会反映到另一个缓存中,从而使其保存的数据失效当两个程序试图访问同一条缓存线时,有许多机制被用来处理这种情况,但最常见的结果是一个程序被迫用另一个程序修改的更新信息重新加载其缓存当每个程序正在访问的缓存线内的数据不相关时,of事件被称为错误共享,因此强制一个程序重新加载缓存是对处理能力和其他资源的浪费。对于一个永远不会修改其缓存中的信息的程序来说,这通常是一个问题,因此,应用程序不会覆盖其他进程所做的更改。有两种常见的方法可以防止或减轻错误共享的影响:第一种是在内存中的数据之前或之后添加空白信息,本质上是强制它进入另一个程序无法访问的单独缓存线。第二种方法是限制对缓存线的读写频率,以便尽可能少地重新加载。更复杂的解决方案涉及缓存级别管理,甚至更改操作系统处理共享的方式。
  • 发表于 2020-07-31 16:23
  • 阅读 ( 1397 )
  • 分类:电脑网络

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具