Skip to content

Commit 7c87d13

Browse files
authored
Merge pull request #176 from sshaw/master
Add Array#sort.reverse vs Array#sort_by with block
2 parents 54c0c6e + 3c00f22 commit 7c87d13

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,27 @@ Comparison:
483483
Fixnum#times + map: 678097.4 i/s - 1.58x slower
484484
```
485485

486+
##### `Array#sort.reverse` vs `Array#sort_by` + block [code](code/array/sort-reverse-vs-sort_by-with-block.rb)
487+
488+
```
489+
$ ruby -v code/array/sort-reverse-vs-sort_by.rb
490+
ruby 2.5.2p104 (2018-10-18 revision 65133) [x86_64-darwin13]
491+
Warming up --------------------------------------
492+
Array#sort.reverse
493+
16.231k i/100ms
494+
Array#sort_by &:-@
495+
5.406k i/100ms
496+
Calculating -------------------------------------
497+
Array#sort.reverse
498+
149.492k (±11.0%) i/s - 746.626k in 5.070375s
499+
Array#sort_by &:-@
500+
51.981k (± 8.8%) i/s - 259.488k in 5.041625s
501+
502+
Comparison:
503+
Array#sort.reverse: 149492.2 i/s
504+
Array#sort_by &:-@: 51980.6 i/s - 2.88x (± 0.00) slower
505+
```
506+
486507
### Enumerable
487508

488509
##### `Enumerable#each + push` vs `Enumerable#map` [code](code/enumerable/each-push-vs-map.rb)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
require "benchmark/ips"
2+
3+
ARRAY = 100.times.map { rand(1_000_000_000) }
4+
5+
def fast
6+
ARRAY.sort.reverse
7+
end
8+
9+
def slow
10+
ARRAY.sort_by(&:-@)
11+
end
12+
13+
Benchmark.ips do |x|
14+
x.report('Array#sort.reverse') { fast }
15+
x.report('Array#sort_by &:-@') { slow }
16+
17+
x.compare!
18+
end

0 commit comments

Comments
 (0)