【发布时间】:2011-05-20 21:42:54
【问题描述】:
我目前正在开发一个相当大的单线程、基于事件的应用程序,该应用程序围绕 Linux 下的 epoll 和其他平台下的类似技术设计。目前,每当我们希望两个实例进行通信时,它们通常通过套接字进行,无论它们是否在同一台机器上运行。出于性能原因,我设想使用某种形式的 IPC 来加速同一台机器的通信。现在,我需要决定使用哪种 IPC 机制。
以下因素对我很重要:
- 事件驱动,没有完全重新设计——如果 IPC 机制不能很好地适应 epoll,那我几个月的工作就白费了
- 快——如果这个机制不比套接字快,那就不值得花时间去实现它
- 在执行期间灵活且(重新)可配置 -- 我相信这排除了 MPI 和 al
- 不需要多线程。
我愿意为不同的平台使用不同的机制,只要它们都使用相同的范例。我也愿意深入了解 C/C++/Obj-C 的平台特定绑定。
有什么建议吗?
谢谢。
【问题讨论】:
-
顺便说一句,socket 在同一台机器上打开时性能要好得多:stackoverflow.com/questions/1644851/…
-
嗯,根据我的经验,IP 套接字不会。