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 @@ -280,6 +280,28 @@ Comparison:
280280Enumerable#select.first: 89757.4 i/s - 4.84x slower
281281```
282282
283+ ##### ` Enumerable#select.last ` vs ` Enumerable#reverse.detect ` [ code] ( code/enumerable/select-last-vs-reverse-detect.rb )
284+
285+ ```
286+ $ ruby -v code/enumerable/select-last-vs-reverse-detect.rb
287+ ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin12.0]
288+ Calculating -------------------------------------
289+ Enumerable#select.last
290+ 7042 i/100ms
291+ Enumerable#reverse.detect
292+ 42562 i/100ms
293+ -------------------------------------------------
294+ Enumerable#select.last
295+ 74391.9 (±10.0%) i/s - 373226 in 5.068891s
296+ Enumerable#reverse.detect
297+ 752939.4 (±11.5%) i/s - 3745456 in 5.040947s
298+
299+ Comparison:
300+ Enumerable#reverse.detect: 752939.4 i/s
301+ Enumerable#select.last: 74391.9 i/s - 10.12x slower
302+ ```
303+
304+
283305##### ` Enumerable#sort ` vs ` Enumerable#sort_by ` [ code] ( code/enumerable/sort-vs-sort_by.rb )
284306
285307```
Original file line number Diff line number Diff line change 1+ require 'benchmark/ips'
2+
3+ ARRAY = [ *1 ..100 ]
4+
5+ def slow
6+ ARRAY . select { |x | ( x % 10 ) . zero? } . last
7+ end
8+
9+ def fast
10+ ARRAY . reverse . detect { |x | ( x % 10 ) . zero? }
11+ end
12+
13+ Benchmark . ips do |x |
14+ x . report ( 'Enumerable#select.last' ) { slow }
15+ x . report ( 'Enumerable#reverse.detect' ) { fast }
16+ x . compare!
17+ end
You can’t perform that action at this time.
0 commit comments