3

我正在评估 ZeroMQ 作为低延迟项目的候选者。但是我找不到一种方法来停止纯 java 实现 recv 调用引起的 GC 周期。有没有办法告诉 ZeroMQ 使用相同的字节缓冲区进行同步读取?

private static ZContext context;
public static void main(String[] args)
{
    try
    {
        context = new ZContext();
        ZFrame qFrame = new ZFrame(queryBuffer);

        // Socket to talk to clients
        ZMQ.Socket socket = context.createSocket(SocketType.REQ);
        socket.connect(ConnectionUtils.tcp(serverIp, serverPort));
        
        //socket.setHWM(1000);
        //socket.setReceiveBufferSize(2000);
        //socket.setLinger(1000);
        //socket.setRcvHWM(1000);
        int i = 0;
        while (!Thread.currentThread().isInterrupted())
        {
            qFrame.sendAndKeep(socket, 0);

            socket.recv(0);
            // ZFrame f= ZFrame.recvFrame(socket,0);
            // f.destroy();
            //ZMsg answer=ZMsg.recvMsg(socket,0);
            //answer.destroy();
            //socket.recvByteBuffer(answerBuf,0);
            // answerBuf.clear();

            i++;
        }
    }

}

在此处输入图像描述

4

0 回答 0