@@ -597,24 +597,27 @@ Comparison:
597
597
$ ruby -v code/hash/dig-vs-\[\]-vs-fetch.rb
598
598
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
599
599
Warming 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
605
606
Calculating -------------------------------------
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
611
613
612
614
Comparison:
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
618
621
```
619
622
620
623
##### ` Hash[] ` vs ` Hash#dup ` [ code] ( code/hash/bracket-vs-dup.rb )
0 commit comments