File tree Expand file tree Collapse file tree 2 files changed +13
-17
lines changed Expand file tree Collapse file tree 2 files changed +13
-17
lines changed Original file line number Diff line number Diff line change @@ -284,24 +284,20 @@ Enumerable#select.first: 89757.4 i/s - 4.84x slower
284284
285285```
286286$ ruby -v code/enumerable/select-last-vs-reverse-detect.rb
287- ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin12.0]
287+ ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]
288+
288289Calculating -------------------------------------
289- Enumerable#select.last
290- 7042 i/100ms
291- Enumerable#reverse.detect
292- 42562 i/100ms
290+ Enumerable#reverse.detect 62.636k i/100ms
291+ Enumerable#select.last 11.687k i/100ms
293292-------------------------------------------------
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
293+ Enumerable#reverse.detect 1.263M (± 8.2%) i/s - 6.326M
294+ Enumerable#select.last 119.387k (± 5.7%) i/s - 596.037k
298295
299296Comparison:
300- Enumerable#reverse.detect: 752939.4 i/s
301- Enumerable#select.last: 74391.9 i/s - 10.12x slower
297+ Enumerable#reverse.detect: 1263100.2 i/s
298+ Enumerable#select.last: 119386.8 i/s - 10.58x slower
302299```
303300
304-
305301##### ` Enumerable#sort ` vs ` Enumerable#sort_by ` [ code] ( code/enumerable/sort-vs-sort_by.rb )
306302
307303```
Original file line number Diff line number Diff line change 22
33ARRAY = [ *1 ..100 ]
44
5- def slow
6- ARRAY . select { |x | ( x % 10 ) . zero? } . last
7- end
8-
95def fast
106 ARRAY . reverse . detect { |x | ( x % 10 ) . zero? }
117end
128
9+ def slow
10+ ARRAY . select { |x | ( x % 10 ) . zero? } . last
11+ end
12+
1313Benchmark . ips do |x |
14- x . report ( 'Enumerable#select.last' ) { slow }
1514 x . report ( 'Enumerable#reverse.detect' ) { fast }
15+ x . report ( 'Enumerable#select.last' ) { slow }
1616 x . compare!
1717end
You can’t perform that action at this time.
0 commit comments