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