Created
October 13, 2009 19:45
-
-
Save PatrickTulskie/209481 to your computer and use it in GitHub Desktop.
This file contains 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 'rubygems' | |
require 'mash' | |
require 'hashie' | |
require 'benchmark' | |
huge_hash = { } | |
big_block_of_text = ";dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d;dfngsd;gndsfgnsdf;gnsdf;hndfs'hfgnh'isfgng'asifnsd;iofgbdsf;hugsdbf;isdangliusdfgn;sdfing'disv c;jvb f;jb fs;ib s;div d" | |
70.times do |integer| | |
huge_hash["layer#{integer}"] = [] | |
2000.times do |i| | |
huge_hash["layer#{integer}"][i] = big_block_of_text.clone * 5 | |
end | |
end | |
raw_counter = 0 | |
mashed_counter = 0 | |
hashied_counter = 0 | |
Benchmark.bm do |x| | |
x.report { raw_counter = huge_hash['layer20'].length } | |
x.report { mash = Mash.new(huge_hash); mashed_counter = mash.layer20.length } | |
x.report { hashie = Hashie::Mash.new(huge_hash); hashied_counter = hashie.layer20.length } | |
end | |
puts "Raw Ruby Hash Counter: " + raw_counter.to_s | |
puts "Mashed Ruby Hash Counter: " + mashed_counter.to_s | |
puts "Hashie Ruby Hash Counter: " + hashied_counter.to_s | |
=begin | |
user system total real | |
0.000000 0.000000 0.000000 ( 0.000009) | |
0.230000 0.010000 0.240000 ( 0.426423) | |
0.100000 0.020000 0.120000 ( 1.428347) | |
Raw Ruby Hash Counter: 2000 | |
Mashed Ruby Hash Counter: 2000 | |
Hashie Ruby Hash Counter: 2000 | |
=end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment