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 @@ -447,6 +447,27 @@ Comparison:
447
447
Array#insert: 0.2 i/s - 262.56x slower
448
448
```
449
449
450
+ ##### ` Array#sort.reverse ` vs ` Array#sort_by ` + block [ code] ( code/array/sort-reverse-vs-sort_by-with-block.rb )
451
+
452
+ ```
453
+ $ ruby -v code/array/sort-reverse-vs-sort_by.rb
454
+ ruby 2.5.2p104 (2018-10-18 revision 65133) [x86_64-darwin13]
455
+ Warming up --------------------------------------
456
+ Array#sort.reverse
457
+ 16.231k i/100ms
458
+ Array#sort_by &:-@
459
+ 5.406k i/100ms
460
+ Calculating -------------------------------------
461
+ Array#sort.reverse
462
+ 149.492k (±11.0%) i/s - 746.626k in 5.070375s
463
+ Array#sort_by &:-@
464
+ 51.981k (± 8.8%) i/s - 259.488k in 5.041625s
465
+
466
+ Comparison:
467
+ Array#sort.reverse: 149492.2 i/s
468
+ Array#sort_by &:-@: 51980.6 i/s - 2.88x (± 0.00) slower
469
+ ```
470
+
450
471
### Enumerable
451
472
452
473
##### ` 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