Skip to content

Commit 6bd7eb8

Browse files
committed
Merge pull request #26 from DamirSvrtan/reverse-detect
select.last vs reverse.detect
2 parents 054b852 + a12a318 commit 6bd7eb8

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

README.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,6 +280,28 @@ Comparison:
280280
Enumerable#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
```
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
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

0 commit comments

Comments
 (0)