我有两个进程,一个将查询其他data.There将在有限的时间内(每秒10000)和数据(>100mb)将传输的数据(>100mb)将是一个整数类型(双精度,整型)我的问题是在哪种方式连接这个进程?
共享内存、消息队列、lpc(本地过程调用)或其他...
还有,我想问一下你推荐的图书馆是哪一个?顺便说一下,请不要建议MPI。编辑:在windows xp 32位下
发布于 2008-12-16 18:26:32
一个词:Boost.InterProcess。如果真的需要更快,那么共享内存就是最佳选择。您几乎没有任何开销,因为操作系统在虚拟地址和物理地址之间执行通常的映射,并且不需要对数据进行复制。你只需要注意并发问题。
对于实际发送像shutdown和query这样的命令,我会使用消息队列。在我了解boost之前,我以前使用过localhost网络编程,并使用过手动共享内存分配。该死的,如果我需要重写这个应用,我会立即选择boost。Boost.InterProcess让这一切变得更容易。看看这个。
发布于 2008-12-16 18:56:38
我将使用共享内存来存储数据,并使用消息队列来发送查询。
发布于 2008-12-16 19:05:55
我同意Marc的建议--我不会费心使用boost,除非您有可移植性问题,或者想做一些很酷的事情,比如在共享内存上映射标准容器类型(在这种情况下,我肯定会使用boost)。
否则,消息队列和共享内存就很容易处理了。
https://stackoverflow.com/questions/372198
复制相似问题