我刚刚运行了zeroMQ hello world示例并计算了请求 - 响应延迟。它平均使用IPC协议运行约0.1ms。这听起来很慢......这听起来不错吗?
long start=System.nanoTime();
socket.send(request, 0);
// Get the reply.
byte[] reply = socket.recv(0);
System.out.println((System.nanoTime()-start)/1000000.0);
答案 0 :(得分:3)
我认为你的平均值有一个以上的样本?在取平均值之前,我会进行至少2-10秒的测试。同一进程/线程中的平均延迟可能会产生误导。
我会创建第二个进程,如果你还没有这样做,它会回显它所获得的一切。 (除非你想要RTT延迟,否则将延迟分成两部分)
普通套接字在典型的多核盒上可以获得20微秒的RTT延迟,我希望IPC更快。在快速PC上,您可以使用套接字获得9微秒的典型RTT延迟。
如果您希望延迟远低于此,我会考虑在一个进程或一个线程中执行所有操作,如果可以的话,在这种情况下,方法调用的成本大约为10 ns(如果它没有内联;)