【问题标题】:Is mmap the best way to communicate between processes?mmap 是进程间通信的最佳方式吗?
【发布时间】:2010-04-29 15:24:23
【问题描述】:

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

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

【问题讨论】:

    标签: ipc mmap


    【解决方案1】:

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

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

    【讨论】:

    • 我想 mmap 比套接字有优势的一个地方是,如果必须在脚本之间共享一些巨大的东西。但是对于简单的 IPC 套接字会更好。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-09-27
      • 2018-05-31
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 2020-11-14
      • 1970-01-01
      相关资源
      最近更新 更多