我正在尝试在 Ruby 中的同一个 Linux 机器上的 2 个进程之间进行 IPC,我需要尽可能优化解决方案。
我从 TCPSocket 开始,但我发现使用 UNIXSocket 可能更快,并且可能不会将数据复制到内核缓冲区。
我一直在阅读 SO 线程,看起来 mmap 可能很有趣。但是对于 mmap,我需要 a) 安装 mmap gem 和 b) 提供锁定,因为多个客户端进程可能会尝试与服务器进程连接(都在同一个盒子上运行)。
我的问题:
- 您还会推荐哪些其他选择?
- 您如何建议使用 ruby mmap 锁定内存?
- UNIXSocket 与 mmap 的数字(如果有的话)如何叠加?