Revisions

gist: 209481 Download_button fork
public
Public Clone URL: git://gist.github.com/209481.git
Embed All Files: show embed
mash_benchmark.rb #
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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