java中的消息传递延迟(使用zeromq)

时间:2011-10-16 18:15:36

标签: java zeromq

我刚刚运行了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);

1 个答案:

答案 0 :(得分:3)

我认为你的平均值有一个以上的样本?在取平均值之前,我会进行至少2-10秒的测试。同一进程/线程中的平均延迟可能会产生误导。

我会创建第二个进程,如果你还没有这样做,它会回显它所获得的一切。 (除非你想要RTT延迟,否则将延迟分成两部分)

普通套接字在典型的多核盒上可以获得20微秒的RTT延迟,我希望IPC更快。在快速PC上,您可以使用套接字获得9微秒的典型RTT延迟。

如果您希望延迟远低于此,我会考虑在一个进程或一个线程中执行所有操作,如果可以的话,在这种情况下,方法调用的成本大约为10 ns(如果它没有内联;)