File: //usr/share/rubygems-integration/all/gems/amq-protocol-2.3.2/benchmarks/int_allocator.rb
$LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), "..", "lib"))
require 'amq/int_allocator'
require "benchmark"
allocator = AMQ::IntAllocator.new(1,65535)
mutex = Mutex.new
Benchmark.bm do |x|
x.report("allocate") do
allocator = AMQ::IntAllocator.new(1,65535)
1.upto(65534) do |i|
mutex.synchronize do
n = allocator.allocate
raise 'it be broke' unless n == i
end
end
end
x.report("allocate_with_release") do
allocator = AMQ::IntAllocator.new(1,65535)
1.upto(65534) do |i|
mutex.synchronize do
n = allocator.allocate
if i % 5 == 0
allocator.release(n)
end
end
end
end
end