在 ZeroMQ 的指南中,有这样的内容:
If you use
inproc
and socket pairs, you are building a tightly-bound application, i.e., one where your threads are structurally interdependent. Do this when low latency is really vital.
我非常关心应用程序的延迟。
问题:
是否只有“
inproc
-ness”使其具有低延迟?或者“
inproc + PAIR
”有什么特别之处,比inproc +“WHATEVER”
更快?
最佳答案
Q : is it the "
inproc
-ness" alone that makes it low-latency?
是的,。 。 。如bazza昨天已经概括了,让我补充几分:
1) inproc://
-transport-class 是无堆栈、无协议(protocol)且纯(因此快速且几乎零延迟)RAM内存区域映射工具以及(如第二个问题中所问)
Q : Or is there something special about "
inproc + PAIR
" that is faster thaninproc + "WHATEVER"
?
2) PAIR/PAIR
-可扩展正式通信模式原型(prototype) 没有添加额外的,模式的原型(prototype)相关的,多(多)方行为握手(与其他一些分布式有限状态自动机相比(表达模式 原型(prototype)行为所有分布式对等点之间的状态和转换 - 不使用PAIR/PAIR
专有的一对一数字消防水带),因此没有任何结果添加到此处,超出了两侧的线程安全本地指针机制以及一些 Context()
-实例信号。
顺便说一句,您可能已经注意到,对于纯inproc://
-transport-class应用程序,您可以实例化具有零 I/O 线程的 Context( 0 ) ,因为在这些情况下 Context() 信号根本不需要它们,因为它只管理指针本地 RAM 内存区域的技巧——太可爱了,不是吗? )
关于performance - 在 ZeroMQ 中, "inproc + PAIR"比 "inproc"快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58596269/