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:
447447 Array#insert: 0.2 i/s - 262.56x slower
448448```
449449
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+
450471### Enumerable
451472
452473##### ` 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