Created
October 30, 2014 23:59
-
-
Save dubek/b3232b91dff2d33ae948 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require "benchmark/ips" | |
require "hamster/set" | |
require "hamster/version" | |
puts "OS Name: #{`uname -s -r -v -m -p -i -o`}" | |
puts "Ruby Version: #{`ruby -v`}" | |
puts "RubyGems Version: #{`gem -v`}" | |
puts "RVM Version: #{`rvm -v`}" | |
puts "Hamster version: #{Hamster::VERSION}" | |
def benchmark_difference(set_size) | |
puts | |
puts | |
puts | |
Benchmark.ips do |b| | |
set_a = Hamster::Set.new((1..set_size).to_a) | |
set_b = Hamster::Set.new(((set_size/2)..set_size).to_a) | |
b.report "old_difference(N=#{set_size})" do | |
set_a.old_difference(set_b) | |
end | |
b.report "difference(N=#{set_size})" do | |
set_a.difference(set_b) | |
end | |
b.compare! | |
end | |
end | |
benchmark_difference(10) | |
benchmark_difference(20) | |
benchmark_difference(50) | |
benchmark_difference(100) | |
benchmark_difference(1000) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
OS Name: Linux 2.6.32-431.30.1.el6.x86_64 #1 SMP Wed Jul 30 14:44:26 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux | |
Ruby Version: ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux] | |
RubyGems Version: 2.2.2 | |
RVM Version: rvm 1.25.33 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/] | |
Hamster version: 1.0.1-rc3 | |
Calculating ------------------------------------- | |
old_difference(N=10) 4788 i/100ms | |
difference(N=10) 9341 i/100ms | |
------------------------------------------------- | |
old_difference(N=10) 53973.1 (±2.0%) i/s - 272916 in 5.058650s | |
difference(N=10) 107220.4 (±1.7%) i/s - 541778 in 5.054387s | |
Comparison: | |
difference(N=10): 107220.4 i/s | |
old_difference(N=10): 53973.1 i/s - 1.99x slower | |
Calculating ------------------------------------- | |
old_difference(N=20) 2605 i/100ms | |
difference(N=20) 4302 i/100ms | |
------------------------------------------------- | |
old_difference(N=20) 25656.7 (±2.9%) i/s - 130250 in 5.081251s | |
difference(N=20) 46504.2 (±3.6%) i/s - 232308 in 5.002735s | |
Comparison: | |
difference(N=20): 46504.2 i/s | |
old_difference(N=20): 25656.7 i/s - 1.81x slower | |
Calculating ------------------------------------- | |
old_difference(N=50) 831 i/100ms | |
difference(N=50) 1196 i/100ms | |
------------------------------------------------- | |
old_difference(N=50) 8514.3 (±2.2%) i/s - 43212 in 5.077861s | |
difference(N=50) 12121.6 (±0.8%) i/s - 60996 in 5.032350s | |
Comparison: | |
difference(N=50): 12121.6 i/s | |
old_difference(N=50): 8514.3 i/s - 1.42x slower | |
Calculating ------------------------------------- | |
old_difference(N=100) | |
402 i/100ms | |
difference(N=100) 536 i/100ms | |
------------------------------------------------- | |
old_difference(N=100) | |
4024.9 (±1.2%) i/s - 20502 in 5.094563s | |
difference(N=100) 5441.3 (±1.3%) i/s - 27336 in 5.024606s | |
Comparison: | |
difference(N=100): 5441.3 i/s | |
old_difference(N=100): 4024.9 i/s - 1.35x slower | |
Calculating ------------------------------------- | |
old_difference(N=1000) | |
34 i/100ms | |
difference(N=1000) 43 i/100ms | |
------------------------------------------------- | |
old_difference(N=1000) | |
342.2 (±1.5%) i/s - 1734 in 5.068383s | |
difference(N=1000) 438.4 (±1.4%) i/s - 2193 in 5.002825s | |
Comparison: | |
difference(N=1000): 438.4 i/s | |
old_difference(N=1000): 342.2 i/s - 1.28x slower | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment