Skip to content

Commit c8139d7

Browse files
bejmullerJuanitoFatas
authored andcommitted
Update readme with Hash#merge({}) vs Hash#dup#merge!({}) vs {}#merge!(Hash) benchmark results
1 parent 0a6b46e commit c8139d7

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,28 @@ Comparison:
542542
Hash#merge: 409.6 i/s - 24.00x slower
543543
```
544544

545+
##### `Hash#merge({})` vs `Hash#dup#merge!({})` vs `{}#merge!(Hash)` [code](code/hash/merge-vs-dup-merge-bang-vs-merge-bang.rb)
546+
547+
When we don't want to modify the original hash, and we want duplicates to be created
548+
549+
```
550+
$ ruby -v code/hash/merge-vs-dup-merge-bang-vs-merge-bang.rb
551+
ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
552+
Calculating -------------------------------------
553+
Hash#merge({}) 603.000 i/100ms
554+
Hash#dup#merge!({}) 650.000 i/100ms
555+
{}#merge!(Hash) 1.763k i/100ms
556+
-------------------------------------------------
557+
Hash#merge({}) 6.593k (± 7.6%) i/s - 33.165k
558+
Hash#dup#merge!({}) 6.591k (± 5.2%) i/s - 33.150k
559+
{}#merge!(Hash) 17.654k (± 3.0%) i/s - 89.913k
560+
561+
Comparison:
562+
{}#merge!(Hash): 17654.0 i/s
563+
Hash#merge({}): 6592.7 i/s - 2.68x slower
564+
Hash#dup#merge!({}): 6591.2 i/s - 2.68x slower
565+
```
566+
545567
##### `Hash#sort_by` vs `Hash#sort` [code](code/hash/hash-key-sort_by-vs-sort.rb)
546568

547569
To sort hash by key.

0 commit comments

Comments
 (0)