在localhost上使用zeromq是否有意义?或者最好使用共享内存?

时间:2013-05-05 18:50:21

标签: zeromq

我需要在两个进程之间传输金融数据(目前c ++和c#,未来的c ++和c ++在Linux上)。它的实时报价 - 例如1 100,1 100.1,2 101.2等等。)。数据具有明确定义的格式。延迟必须很低。我自己在zeromq和使用共享内存之间做出选择。我有几个关于zeromq的问题:

  • 使用zeromq而不是自己使用共享内存会更少,更容易吗?
  • 如果localhost上的zeromq延迟与共享内存的延迟相当吗?

我不需要在不同的主机上运行我的部件或类似的东西。所以我在localhost上有一个生产者 - 一个消费者模式。我不确定是否应该将zeromq用于这种简单的场景,或者我应该只使用共享内存而这是不是?

3 个答案:

答案 0 :(得分:6)

在我看来,共享内存是令人讨厌且容易出错的。 ZMQ很优雅。我总是喜欢ZMQ路线。

如果有的话,ZMQ将更容易设置而不是共享内存 - 而不是相反。

答案 1 :(得分:3)

ZeroMQ可能比共享内存更快,因为它在缓冲中被烘焙。消息传递模式还提供了一种更灵活的方法来解决问题。与往常一样,进行自己的测试并确定您喜欢的测试。

我希望ZeroMQ版本能够更加简单。

答案 2 :(得分:0)

ZMQ使用Linux套接字进行IPC。上次我检查它们仅限于传递100K数据。因此,如果要传递更大的数量,则需要使用共享内存。 Boost共享内存程序包很好用,但是我不熟悉其他语言中的绑定。