ファイルを使用して、Python と Ruby スクリプトの間で通信します。しかし、mmap があります。ここに私の質問があります。
- mmapで同じこと(プロセス間の通信)を行うことはできますか?
- mmap は、物理ファイルよりもどのような利点がありますか? スピードアップ?
- 2 つのプロセス間で通信する最も簡単な方法は何ですか?
- 2 つのプロセス間で通信する最速の方法は何ですか?
物理ファイルに対する mmap の利点の 1 つは確かに高速化ですが、物理ファイルよりも何でも高速になります。
プロセス間で通信する最も簡単な方法は、パイプまたはソケットです。ストリームであるため簡単です。そのため、プロセス間で交換できるデータの長さに制限がありません。ファイルや mmap には制限があります。
何を伝えたいかにもよるかもしれません。あるアプリから別のアプリに大量のデータセットを渡すだけの場合は、mmap ファイルが理にかなっています。メッセージがある場合は、何らかの IPC/RPC プロトコルの方が適している可能性があります。あるアプリから他のパイプ/ソケットにデータをストリーミングしている場合は、より良いかもしれません。
mmaps では、それらをファイルとして管理する必要があるため、同期する方法でそれらを開いたり閉じたりする必要があります。これはパフォーマンスに影響を与える可能性があるため、ストリーム/パイプを使用することをお勧めします。