+# Copyright (c) 2007-2010 iMatix Corporation
+# This file is part of 0MQ.
+# 0MQ is free software; you can redistribute it and/or modify it under
+# the terms of the Lesser GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+# 0MQ is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# Lesser GNU General Public License for more details.
+# You should have received a copy of the Lesser GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+ puts "usage: local_thr <bind-to> <message-size> <message-count>"
+message_size = ARGV.to_i
+message_count = ARGV.to_i
+ctx = ZMQ::Context.new(1, 1, 0)
+s = ZMQ::Socket.new(ctx, ZMQ::SUB);
+# Add your socket options here.
+# For example ZMQ_RATE, ZMQ_RECOVERY_IVL and ZMQ_MCAST_LOOP for PGM.
+for i in 1...message_count.to_i do
+elapsed = (end_time.to_f - start_time.to_f) * 1000000
+throughput = message_count * 1000000 / elapsed
+megabits = throughput * message_size * 8 / 1000000
+puts "message size: %i [B]" % message_size
+puts "message count: %i" % message_count
+puts "mean throughput: %i [msg/s]" % throughput
+puts "mean throughput: %.3f [Mb/s]" % megabits