From 7a5db6041f4f11ed502fa7446da900509dedb00f Mon Sep 17 00:00:00 2001 From: malosek Date: Wed, 16 Sep 2009 12:22:36 +0200 Subject: added newly added socket options to all language bindings, P2P model changed to PUB/SUB for throughput tests --- perf/java/local_thr.java | 68 ++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 31 deletions(-) (limited to 'perf/java/local_thr.java') diff --git a/perf/java/local_thr.java b/perf/java/local_thr.java index f5d3718..450aed5 100644 --- a/perf/java/local_thr.java +++ b/perf/java/local_thr.java @@ -21,45 +21,51 @@ import org.zmq.*; class local_thr { - public static void main (String [] args) - { - if (args.length != 3) { - System.out.println ("usage: local_thr " + - " "); - return; - } + public static void main (String [] args) + { + if (args.length != 3) { + System.out.println ("usage: local_thr " + + " "); + return; + } - String bindTo = args [0]; - long messageSize = Integer.parseInt (args [1]); - long messageCount = Integer.parseInt (args [2]); + String bindTo = args [0]; + long messageSize = Integer.parseInt (args [1]); + long messageCount = Integer.parseInt (args [2]); - org.zmq.Context ctx = new org.zmq.Context (1, 1); + org.zmq.Context ctx = new org.zmq.Context (1, 1); - org.zmq.Socket s = new org.zmq.Socket (ctx, org.zmq.Socket.P2P); - s.bind (bindTo); + org.zmq.Socket s = new org.zmq.Socket (ctx, org.zmq.Socket.SUB); - byte [] data = s.recv (0); - assert (data.length == messageSize); + s.setsockopt (org.zmq.Socket.SUBSCRIBE , "*"); - long start = System.currentTimeMillis (); + // Add your socket options here. + // For example ZMQ_RATE, ZMQ_RECOVERY_IVL and ZMQ_MCAST_LOOP for PGM. - for (int i = 1; i != messageCount; i ++) { - data = s.recv (0); - assert (data.length == messageSize); - } + s.bind (bindTo); - long end = System.currentTimeMillis (); + byte [] data = s.recv (0); + assert (data.length == messageSize); - long elapsed = (end - start) * 1000; - if (elapsed == 0) - elapsed = 1; + long start = System.currentTimeMillis (); - long throughput = messageCount * 1000000 / elapsed; - double megabits = (double) (throughput * messageSize * 8) / 1000000; + for (int i = 1; i != messageCount; i ++) { + data = s.recv (0); + assert (data.length == messageSize); + } - System.out.println ("message size: " + messageSize + " [B]"); - System.out.println ("message count: " + messageCount); - System.out.println ("mean throughput: " + throughput + "[msg/s]"); - System.out.println ("mean throughput: " + megabits + "[Mb/s]"); - } + long end = System.currentTimeMillis (); + + long elapsed = (end - start) * 1000; + if (elapsed == 0) + elapsed = 1; + + long throughput = messageCount * 1000000 / elapsed; + double megabits = (double) (throughput * messageSize * 8) / 1000000; + + System.out.println ("message size: " + messageSize + " [B]"); + System.out.println ("message count: " + messageCount); + System.out.println ("mean throughput: " + throughput + "[msg/s]"); + System.out.println ("mean throughput: " + megabits + "[Mb/s]"); + } } -- cgit v1.2.3