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:
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 )
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