代码之家  ›  专栏  ›  技术社区  ›  rook

没有内存映射文件的共享内存

  •  0
  • rook  · 技术社区  · 14 年前

    是否可以在不使用两个MFC C++应用程序之间共享内存 Memory mapped files ? 目前我们正在使用这种方法来共享结构,它对于我们的需求来说太慢了。有更好的办法吗?

    2 回复  |  直到 14 年前
        1
  •  3
  •   mdma    14 年前

    你确定是内存映射文件速度慢吗?操作系统将同一块RAM映射到两个进程空间(当它被分页时)。性能问题的其他元凶可能是互斥和其他同步原语/易失性读取和缓存失效,从而在进程之间将并发更改传播到内存。

    其他的替代方案是消息传递、RPC或DCOM,但我怀疑它们的性能会更好,尤其是在传输/引用的数据量很大的情况下。

        2
  •  1
  •   Will Dean    14 年前

    我会认为,一旦建立了内存映射(使用MapViewOfFile),这将非常快。

    http://msdn.microsoft.com/en-us/library/h90dkhs0%28VS.80%29.aspx