0

macos X で高性能なプロセス間通信システムを探しています。

最適なシステムは何ですか? AppleEventsまたはNSNotifications

4

2 に答える 2

1

分散通知 (つまり、NSDistributedNotificationCenter を介して送信される通知) は、目標が高パフォーマンスおよび/または信頼性である場合、おそらく適切なオプションではありません。この件に関する Apple 自身の見解は次のとおりです。

分散通知の投稿は、コストのかかる操作です。通知は、分散通知用に登録されたオブジェクトを持つすべてのタスクに配布されるシステム全体のサーバーに送信されます。通知を送信してから別のタスクに通知が到着するまでの待機時間は無制限です。実際、あまりにも多くの通知が投稿され、サーバーのキューがいっぱいになると、通知が破棄されることがあります。http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSDistributedNotificationCenter_Class/Reference/Reference.html

「高パフォーマンス」の意味に応じて、分散オブジェクト、または単純な古い Unix IPC メカニズム (ソケット、パイプ、共有メモリなど) を調べることができます。

于 2010-08-07T00:51:47.867 に答える
1

送信者と受信者の両方を制御すると、2 つのプロセス間でソケットを開くことができます ( man socketpair )。これは非常に高性能です。また、共有の場所 ( /tmp など) にあるファイルを開き、あるプロセスから書き込み、別のプロセスから読み取ることもできます。これは非常に高速です。また、ローカル マシンで 2 つの TCP/IP ポート (各プロセスに 1 つずつ) を開き、一方から他方に「ネットワーク経由で」送信することもできます。

選択肢が NSNotifications または AppleEvents の 2 つだけである場合、AppleEvents のパフォーマンスの方が優れている可能性があります。

于 2011-07-14T17:58:05.147 に答える