tenderlove (owner)

Revisions

gist: 219136 Download_button fork
public
Public Clone URL: git://gist.github.com/219136.git
Embed All Files: show embed
Ruby #
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
require 'benchmark'
 
n = 10000000
positive = {}
negative = "asdfasdfasdf"
_nil = nil
 
Benchmark.bm(15) do |x|
  x.report("=== positive") { n.times { Hash === positive } }
  x.report("=== negative") { n.times { Hash === negative } }
  x.report("is_a? positive") { n.times { positive.is_a?(Hash) } }
  x.report("is_a? negative") { n.times { negative.is_a?(Hash) } }
  x.report("nil ===") { n.times { Hash === _nil } }
  x.report("nil is_a?") { n.times { _nil.is_a?(Hash) } }
end
__END__
user system total real
=== positive 3.250000 0.020000 3.270000 ( 3.384835)
=== negative 3.340000 0.010000 3.350000 ( 3.428374)
is_a? positive 3.540000 0.020000 3.560000 ( 3.684083)
is_a? negative 3.620000 0.030000 3.650000 ( 3.737268)
nil === 3.540000 0.030000 3.570000 ( 3.676154)
nil is_a? 3.510000 0.020000 3.530000 ( 3.644366)