我有两个进程,一个进程将查询另一个进程的数据。在有限的时间内(每秒 10000 个)将会有大量的查询,并且每秒将传输数据(>100 mb)。数据类型将是整数类型(双精度) ,整数)
我的问题是用什么方式连接这个过程?
共享内存、消息队列、lpc(本地过程调用)或其他......
我还想问一下你建议哪个图书馆?顺便说一句,请不要建议 MPI。
编辑:在Windows XP 32位下
一个词:增强进程间 https://www.boost.org/doc/libs/1_74_0/doc/html/interprocess.html。如果确实需要快速,共享内存是最佳选择。由于操作系统在虚拟地址和物理地址之间进行通常的映射,并且不需要数据复制,因此开销几乎为零。您只需要注意并发问题。
对于实际发送命令,如shutdown and query,我会使用消息队列。在我知道 boost 之前,我以前使用本地主机网络编程来做到这一点,并使用手动共享内存分配。该死,如果我需要重写应用程序,我会立即选择 boost。 Boost.InterProcess 使这对您来说更容易。一探究竟。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)