私が見つけたこのライブラリを使用したいと思います。これは、zeromq の純粋な Java ポート (ラッパーではない) です。私はそれをテストしようとしていますが、いくつかの良い数値を主張していますが、私が実行しているテストはかなり悪い結果を示しており、ローカルで実行されています (クライアントと同じマシンで提供しています)。私はそれが私が間違っていることだと確信しています。約かかります。この 10.000 メッセージのループを実行するのに5 秒かかります。
私がしたことは、Hello world の例を取り上げて、一時停止と sysout を削除しただけです。コードは次のとおりです。
サーバー:
package guide;
import org.jeromq.ZMQ;
public class hwserver{
public static void main(String[] args) throws Exception{
// Prepare our context and socket
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket socket = context.socket(ZMQ.REP);
System.out.println("Binding hello world server");
socket.bind ("tcp://*:5555");
while (true) {
byte[] reply = socket.recv(0);
String requestString = "Hello" ;
byte[] request = requestString.getBytes();
socket.send(request, 0);
}
}
}
クライアント:
package guide;
import org.jeromq.ZMQ;
public class hwclient{
public static void main(String[] args){
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket socket = context.socket(ZMQ.REQ);
socket.connect ("tcp://localhost:5555");
System.out.println("Connecting to hello world server");
long start = System.currentTimeMillis();
for(int request_nbr = 0; request_nbr != 10_000; request_nbr++) {
String requestString = "Hello" ;
byte[] request = requestString.getBytes();
socket.send(request, 0);
byte[] reply = socket.recv(0);
}
long end = System.currentTimeMillis();
System.out.println(end-start);
socket.close();
context.term();
}
}
このコードを修正して、適切な数値を取得することは可能ですか?