2010-04-29 75 views
0

我使用文件在Python和Ruby腳本之間進行通信。但是,我們有mmap。所以這是我的問題。mmap是進程間通信的最佳方式嗎?

  • 我可以在mmap上做同樣的事情(進程之間的通信)嗎?
  • mmap可以給我們什麼優勢,超過物理文件?加速?
  • 什麼是兩個進程之間最簡單的通信方式?
  • 什麼是兩個進程之間進行通信的最快方式?

回答

4

mmap超過物理文件的一個優勢實際上是加速,但任何事情都會比物理文件快!

進程間通信的最簡單方法是管道或套接字。它們更容易,因爲它們是流,所以它們不會限制可以在流程之間交換的數據的長度,與具有邊界的文件或mmap相反。

+0

我猜想一個地方,如果必須在腳本之間共享巨大的東西,那麼mmap會比套接字有優勢。但對於簡單的IPC插座會更好。 – daramarak 2010-04-29 15:38:26

0

它可能取決於你想要溝通。如果您只是將一個海量數據集從一個應用程序提供給另一個應用程序,那麼mmap文件可能有意義。如果你有消息,那麼某種IPC/RPC協議可能會更好。如果您將數據從一個應用程序傳輸到其他管道/套接字可能會更好。

對於mmaps,您仍然需要將它們作爲文件進行管理,因此您必須以同步的方式打開和關閉它們。這可能會影響性能,因此您可能需要使用流/管道。

相關問題