Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@dbenhur
Created January 21, 2013 07:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dbenhur/4584296 to your computer and use it in GitHub Desktop.
Save dbenhur/4584296 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
require 'benchmark'
require 'set'
N = 10_000_000
Benchmark.bm do |x|
1.upto(10) do |i|
a = (0...i).to_a
x.report("arr-#{i-1}") { (N/i).times { i.times { |n| a.include? n } } }
s = a.to_set
x.report("set-#{i-1}") { (N/i).times { i.times { |n| s.include? n } } }
end
end
# user system total real
# arr-0 1.850000 0.000000 1.850000 ( 1.844850)
# set-0 2.370000 0.000000 2.370000 ( 2.387357)
# arr-1 1.700000 0.000000 1.700000 ( 1.710375)
# set-1 2.010000 0.000000 2.010000 ( 2.001642)
# arr-2 1.720000 0.000000 1.720000 ( 1.737043)
# set-2 1.780000 0.000000 1.780000 ( 1.777353)
# arr-3 1.820000 0.000000 1.820000 ( 1.833283)
# set-3 1.760000 0.000000 1.760000 ( 1.760883)
# arr-4 2.030000 0.000000 2.030000 ( 2.031701)
# set-4 1.750000 0.000000 1.750000 ( 1.762818)
# arr-5 2.200000 0.000000 2.200000 ( 2.208396)
# set-5 1.620000 0.000000 1.620000 ( 1.623367)
# arr-6 2.330000 0.000000 2.330000 ( 2.337725)
# set-6 1.640000 0.000000 1.640000 ( 1.641475)
# arr-7 2.510000 0.000000 2.510000 ( 2.514181)
# set-7 1.640000 0.000000 1.640000 ( 1.655484)
# arr-8 2.700000 0.000000 2.700000 ( 2.696882)
# set-8 1.600000 0.000000 1.600000 ( 1.606895)
# arr-9 2.870000 0.000000 2.870000 ( 2.887409)
# set-9 1.590000 0.000000 1.590000 ( 1.589844)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment