【发布时间】:2010-05-29 17:19:39
【问题描述】:
我正在开发一个 C++ 框架(现在只是为了好玩),它允许用户编写使用标准 API 在彼此之间传输数据的插件。将有三种基本的数据传输机制:文件、套接字和某种 IPC 管道系统。系统设置为对于非文件传输,每个流可以有多个阅读器。 IE 一旦设置了服务器套接字,多台计算机就可以连接并流式传输数据。不过,我有点卡在多阅读器 IPC 系统上。
我所有的插件都在线程中运行(尽管我最终可能想使用基于进程的系统)所以它们存在于相同的地址空间中,所以某种共享内存系统可以正常工作,我想我会用写指针编写我自己的循环缓冲区,并在缓冲区周围追逐它的读指针,但我怀疑我能否实现与 linux 管道相同的性能。
我很好奇人们对于这样的多阅读器解决方案会提出什么建议?管道或域套接字的开销是否足够低,以至于我可以打开到每个阅读器的连接并向每个阅读器发出单独的写入?这是为了处理大量数据(数十兆样本/秒),因此性能是必须的。
【问题讨论】:
-
网络部分是否考虑过使用IP组播?
-
这绝对是 2.0 版菜单上的内容,但我现在想专注于基本功能