mmap是进程间通信的最佳方式吗?

时间:2010-04-29 15:24:24

标签: ipc mmap

我使用文件在Python和Ruby脚本之间进行通信。但是,我们有mmap。所以这是我的问题。

  • 我可以用mmap做同样的事情(进程间通信)吗?
  • mmap对物理文件有什么好处?加速比?
  • 两个流程之间最简单的沟通方式是什么?
  • 两个流程之间进行通信的最快方式是什么?

2 个答案:

答案 0 :(得分:4)

mmap优于物理文件的一个优势确实是加速,但任何东西都会比物理文件更快!

在进程之间进行通信的最简单方法是管道或套接字。它们更容易,因为它们是流,所以它们不会对可以在进程之间交换的数据长度施加限制,这与文件或带有边界的mmap相反。

答案 1 :(得分:0)

这可能取决于您想要沟通的内容。如果您只是从一个应用程序向另一个应用程序提供大量数据集,那么mmap文件可能有意义。如果你有消息,那么某种IPC / RPC协议可能会更好。如果您将数据从一个应用程序流式传输到其他管道/套接字可能会更好。

使用mmaps,您仍然需要将它们作为文件进行管理,因此您必须以同步的方式打开和关闭它们。这可能会影响性能,因此您可能希望使用流/管道。