【发布时间】:2012-05-24 08:48:05
【问题描述】:
我正在用 C++ 编写一个应用程序,该应用程序需要从多个线程多次从同一内存读取。 我的问题是从性能的角度来看,为每个线程复制内存或给所有线程相同的指针并让它们都访问相同的内存会更好。
谢谢
【问题讨论】:
-
显而易见的问题是:这个内存在被读取时是不变的,还是会发生变化?
-
@Mysticial,希望所有架构都能有效处理多次读取数据,而不仅仅是 NUMA 系统。
-
@AmigableClarkKant:您对答案的假设可能会更好地限制在您的答案中(并且在您的答案开始时说明您的假设会更好,让人们更容易阅读它们)。但是,我并不真正关心您的假设here;这个问题是针对 OP(不是你),因为我们需要 OP 来澄清。
-
@edA-qamort-ora-y:我认为关键是在 NUMA 系统上,在每个节点上都有一个本地副本可能会有好处,而拥有一个本地副本可能没有好处如果内存访问是统一的,则有多个副本。
-
@MikeSeymour,我只是想表明,尽管内存架构是相关的,但它是否是 NUMA 可能不是。 SMP/NUMA(可能还有其他)都倾向于对当前使用的数据使用本地缓存。
标签: c++ performance memory