Skip to content

Instantly share code, notes, and snippets.

@danielevans
Created December 28, 2015 17:35
Show Gist options
  • Save danielevans/81eac1a4618763883558 to your computer and use it in GitHub Desktop.
Save danielevans/81eac1a4618763883558 to your computer and use it in GitHub Desktop.
MQTT Speed Test Consumer/Producer
require 'benchmark'
require 'rubygems'
require 'bundler/setup'
require 'mqtt'
MQTT::Client.connect('localhost') do |c|
message_count = -1 # ignore the first message because reasons.
start_time = nil
end_time = nil
Thread.new do
begin
print "\r #{(end_time - start_time).round(5) rescue 0}s to process #{message_count} messages"
sleep 0.1
end while true
end
c.get('test') do |topic, message|
start_time = Time.now if message_count == 0
end_time = Time.now
message_count += 1
end
end
require 'benchmark'
require 'rubygems'
require 'bundler/setup'
require 'mqtt'
message_count = 10_000
MQTT::Client.connect('localhost') do |c|
rt = Benchmark.realtime do
message_count.times do |i|
c.publish('test', i, true, 1)
end
end
puts "="*80
puts "#{rt}s to publish #{message_count} messages"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment