@@ -597,24 +597,27 @@ Comparison:
597597$ ruby -v code/hash/dig-vs-\[\]-vs-fetch.rb
598598ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
599599Warming up --------------------------------------
600- Hash#dig 144.192k i/100ms
601- Hash#[] 148.853k i/100ms
602- Hash#[] fallback 149.761k i/100ms
603- Hash#fetch 132.257k i/100ms
604- Hash#fetch fallback 120.420k i/100ms
600+ Hash#dig 142.217k i/100ms
601+ Hash#[] 153.313k i/100ms
602+ Hash#[] || 145.380k i/100ms
603+ Hash#[] && 121.401k i/100ms
604+ Hash#fetch 137.236k i/100ms
605+ Hash#fetch fallback 120.010k i/100ms
605606Calculating -------------------------------------
606- Hash#dig 6.253M (± 5.9%) i/s - 31.145M
607- Hash#[] 6.733M (± 5.9%) i/s - 33.641M
608- Hash#[] fallback 6.209M (± 5.7%) i/s - 31.001M
609- Hash#fetch 4.500M (± 5.0%) i/s - 22.484M
610- Hash#fetch fallback 3.330M (± 4.7%) i/s - 16.618M
607+ Hash#dig 6.216M (± 6.2%) i/s - 31.003M
608+ Hash#[] 6.676M (± 6.3%) i/s - 33.269M
609+ Hash#[] || 6.160M (± 6.2%) i/s - 30.675M
610+ Hash#[] && 3.096M (± 5.4%) i/s - 15.539M
611+ Hash#fetch 4.425M (± 5.5%) i/s - 22.095M
612+ Hash#fetch fallback 3.279M (± 5.3%) i/s - 16.441M
611613
612614Comparison:
613- Hash#[]: 6732624.6 i/s
614- Hash#dig: 6252809.1 i/s - same-ish: difference falls within error
615- Hash#[] fallback: 6209365.5 i/s - same-ish: difference falls within error
616- Hash#fetch: 4499831.0 i/s - 1.50x slower
617- Hash#fetch fallback: 3330397.7 i/s - 2.02x slower
615+ Hash#[]: 6676415.9 i/s
616+ Hash#dig: 6215966.7 i/s - same-ish: difference falls within error
617+ Hash#[] ||: 6160177.6 i/s - same-ish: difference falls within error
618+ Hash#fetch: 4424551.0 i/s - 1.51x slower
619+ Hash#fetch fallback: 3278599.3 i/s - 2.04x slower
620+ Hash#[] &&: 3096090.4 i/s - 2.16x slower
618621```
619622
620623##### ` Hash[] ` vs ` Hash#dup ` [ code] ( code/hash/bracket-vs-dup.rb )
0 commit comments