@@ -1038,24 +1038,27 @@ Array#each_w/_object: 1352851.8 i/s - 1.88x slower
1038
1038
Hash#select-include : 760944.2 i/s - 3.34x slower
1039
1039
```
1040
1040
1041
- ##### ` Hash#values_at ` vs ` Hash#slice#values `
1042
- [ code] ( code/hash/values_at-vs-slice-values.rb )
1041
+ ##### ` Hash#values_at ` vs ` Hash#slice#values ` vs ` Array#map { Hash#[] } `
1042
+ [ code] ( code/hash/values_at-vs-map-vs- slice-values.rb )
1043
1043
1044
- To select hash values by keys.
1044
+ To select hash values by keys, when all the keys exist in the hash .
1045
1045
1046
1046
```
1047
- $ ruby -v code/hash/values_at-vs-slice-values.rb
1048
- ruby 2.6.1p33 (2019-01-30 revision 66950 ) [x86_64-darwin18]
1047
+ $ ruby -v code/hash/values_at-vs-map-vs- slice-values.rb
1048
+ ruby 2.6.2p47 (2019-03-13 revision 67232 ) [x86_64-darwin18]
1049
1049
Warming up --------------------------------------
1050
- Hash#values_at 284.628k i/100ms
1051
- Hash#slice#values 230.279k i/100ms
1050
+ Hash#values_at 298.254k i/100ms
1051
+ Array#map 250.633k i/100ms
1052
+ Hash#slice#values 243.267k i/100ms
1052
1053
Calculating -------------------------------------
1053
- Hash#values_at 7.179M (± 7.4%) i/s - 35.863M in 5.034179s
1054
- Hash#slice#values 4.458M (± 4.1%) i/s - 22.337M in 5.019922s
1054
+ Hash#values_at 7.540M (± 1.5%) i/s - 37.878M in 5.025027s
1055
+ Array#map 5.119M (± 2.3%) i/s - 25.815M in 5.045566s
1056
+ Hash#slice#values 4.817M (± 1.7%) i/s - 24.083M in 5.001133s
1055
1057
1056
1058
Comparison:
1057
- Hash#values_at : 7178610.6 i/s
1058
- Hash#slice#values: 4458017.0 i/s - 1.61x slower
1059
+ Hash#values_at : 7539658.6 i/s
1060
+ Array#map : 5119405.7 i/s - 1.47x slower
1061
+ Hash#slice#values: 4817081.6 i/s - 1.57x slower
1059
1062
```
1060
1063
1061
1064
0 commit comments