内存映射文件是否会提高多个应用程序实例的性能?

Does memory mapped file increase performance in multiple app instances?

我有 3 个 windows.net 应用程序实例 运行 访问相同的数据。每个 exe 分别加载相同的 60MB 数据文件。这是 CPU 密集型计算作业,其中 CPU 100% 反复访问同一内存,12 个内核上有 24 个线程。我在想,如果我对文件进行内存映射,3 个 exe 实例将共享相同的内存,并且它将落入 L3 缓存。那是对的吗?我会看到性能提升吗?

了解答案的唯一方法是使用基准。变数太多,几乎无法回答您的问题。

Windows 的版本。 Windows 8 介绍了很多 changes in its memory manager],参见 Memory combining 你的情况。

通常由 CPU 根据访问 RAM 中的数据来确定 L3 缓存中的内容。然后也是CPU缓存会不会invalidated during context-switches or not.

通常,当线程处理同一组数据时,缓存会发挥作用并显着提高性能(请参阅此问题的 )。好吧,只需试验一下,看看哪种方法更适合您。