我有一個系統應用程序,作爲unix上12個進程的集合運行。有一個監視進程,與其他11個進程交換數據。哪個IPC在這裏更高效?
IPC的要求是使這11個進程與監控進程進行通信,並以最有效的執行方式進行設計。你們可以衡量下面兩個選項,或者建議更好的選項。
1)有一個UDP套接字通信,其中這11個進程將定期將數據推送到監視進程。監控程序只是在監聽和捕捉足夠好的信息。
或
2)具有共享內存實現。所以共有11個共享內存段,每個共享內存段在兩個進程(進程第i個進程和監視進程)之間共享。
對於共享內存,它似乎更快,但需要鎖定/同步,在udp中,內核將數據從一個進程的內存空間複製到另一個進程。
任何人都可以提供更多的輸入來幫助更好地評估這兩種方法。 ?謝謝。
你真的是一個UDP套接字,或你是指Unix域套接字嗎? – 2011-03-03 05:05:32