【问题标题】:Shared memory and performance [closed]共享内存和性能[关闭]
【发布时间】:2019-01-04 15:56:03
【问题描述】:

如果找到了数据结构,那么访问数据结构时的性能损失是什么:

  • 在同一个进程内存块中。
  • 在共享内存块中(包括锁定,但假设 没有其他进程在很长一段时间内访问它)。

我对访问、读取和写入的近似比较值(例如百分比)感兴趣。

【问题讨论】:

  • 是什么让你觉得有any?您尝试过什么基准测试?在什么平台和架构上?
  • 嗯,例如锁定机制。关于平台和架构,这个问题是通用的。我对近似值感兴趣,例如10% 对 90% 的罚款。
  • 可能我没说清楚,这个问题太笼统了,请提供你的问题的细节。至于锁定,总是有开销,但同样,它取决于上下文。
  • @Pietro 什么锁定机制?大多数内存映射 API 让您可以访问原始页面 - 任何锁定/并发都取决于程序。

标签: c++ performance process shared-memory


【解决方案1】:

你所有的进程内存都是mmaped。一个或多个进程是否映射相同的内存物理页无关紧要,在这方面访问速度没有区别。

内存是位于本地还是远程 NUMA 节点上很重要。

请参阅Challenges of Memory Management on Modern NUMA System 中的 NUMA 基准测试。

【讨论】:

  • 目前,所有内存都是本地的,因此不必考虑与 NUMA 相关的减速。我对最终的开销很感兴趣,因为一个内存块在多个进程之间共享,其中只有一个是主块用户。
  • @Pietro 我冒着重复自己的风险:在这方面访问速度没有区别。
猜你喜欢
  • 2011-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-08
  • 2016-06-22
  • 2018-10-03
相关资源
最近更新 更多