File tree Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Expand file tree Collapse file tree 2 files changed +39
-0
lines changed Original file line number Diff line number Diff line change @@ -483,6 +483,27 @@ Comparison:
483
483
Fixnum#times + map: 678097.4 i/s - 1.58x slower
484
484
```
485
485
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
+
486
507
### Enumerable
487
508
488
509
##### ` Enumerable#each + push ` vs ` Enumerable#map ` [ code] ( code/enumerable/each-push-vs-map.rb )
Original file line number Diff line number Diff line change
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
You can’t perform that action at this time.
0 commit comments