:racehorse: 进程间通信技术的基准测试
在 Linux 和 OS X 上实现了各种进程间通信 (IPC) 方法以及对其的基准测试。
| 方法 | 100 字节消息 | 1 千字节消息 |
|---|---|---|
| Unix 信号 | -- 断开 -- | -- 断开 -- |
| ZeroMQ (TCP) | 24,901 消息/秒 | 22,679 消息/秒 |
| Internet 套接字 (TCP) | 70,221 消息/秒 | 67,901 消息/秒 |
| 域套接字 | 130,372 消息/秒 | 127,582 消息/秒 |
| 管道 | 162,441 消息/秒 | 155,404 消息/秒 |
| 消息队列 | 232,253 消息/秒 | 213,796 消息/秒 |
| FIFOs (命名管道) | 265,823 消息/秒 | 254,880 消息/秒 |
| 共享内存 | 4,702,557 消息/秒 | 1,659,291 消息/秒 |
| 内存映射文件 | 5,338,860 消息/秒 | 1,701,759 消息/秒 |
注意: 代码已经比较老了,可能存在不尽优的配置!我们很乐意根据具体建议更新配置(请参阅下面的贡献)。特别是,「zeromq」是一个伟大的库,应该表现得更好,尤其是因为我们只使用了 TCP 实现。其中有一个专用于 IPC 的实现(-> TODO)。此外,共享内存与映射文件相比表现不一致的技术原因很少(可能是由于缺乏热启动)。尽管如此,希望这项基准测试能够作为一个可靠的起点,提供大致数值和一个参考实现。
如需详细了解节点间通信的评估,请参阅我们的 L5 库。
暂无开放 Issues,或尚未同步最近议题。