1

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

  • 我可以用 mmap 做同样的事情(进程之间的通信)吗?
  • 与物理文件相比,mmap 能给我们带来什么优势?加速?
  • 在两个进程之间进行通信的最简单方法是什么?
  • 在两个进程之间进行通信的最快方式是什么?
4

2 回答 2

4

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

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

于 2010-04-29T15:31:46.457 回答
0

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

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

于 2010-05-25T11:49:04.833 回答