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

标签 java zeromq

我刚刚运行了 zeroMQ hello world 示例并对请求-响应延迟进行了计时。使用 IPC 协议(protocol)运行平均大约 0.1 毫秒。这对我来说听起来很慢....这听起来对吗?

        long start=System.nanoTime();
        socket.send(request, 0);
        //  Get the reply.
        byte[] reply = socket.recv(0);
        System.out.println((System.nanoTime()-start)/1000000.0);

最佳答案

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

如果您还没有这样做,我会创建第二个进程来回显它得到的所有内容。 (除非你想要 RTT 延迟,否则将延迟一分为二)

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

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

关于java - Java 中的消息传递延迟(使用 zeromq),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7786287/

相关文章:

c++ - ZeroMQ - 使用 REQ 套接字发送超过 30 个字节

c - 关闭 0MQ 套接字之前休眠

python - ZeroMQ收不到消息怎么办?

java - Intellij 封装 JavaFx 应用程序

java - 将jar添加到tomcat项目中

java - 列表扩展的增量 future

java - Java 8 中 Collections.sort 的问题

java - 如何在 apache camel 中返​​回对异常的自定义响应

python - 更新libzmq后pyzmq导入错误

c++ - 不使用 sleep() 发送 ZeroMQ 消息