File tree Expand file tree Collapse file tree 2 files changed +18
-17
lines changed Expand file tree Collapse file tree 2 files changed +18
-17
lines changed Original file line number Diff line number Diff line change @@ -864,18 +864,24 @@ Comparison:
864
864
865
865
```
866
866
$ ruby -v code/range/cover-vs-include.rb
867
- ruby 2.2.2p95 (2015-04-13 revision 50295 ) [x86_64-darwin14 ]
867
+ ruby 2.2.3p173 (2015-08-18 revision 51636 ) [x86_64-linux ]
868
868
869
869
Calculating -------------------------------------
870
- Range#cover? 95.445k i/100ms
871
- Range#include? 9.326k i/100ms
870
+ range#cover? 85.467k i/100ms
871
+ range#include? 7.720k i/100ms
872
+ range#member? 7.783k i/100ms
873
+ plain compare 102.189k i/100ms
872
874
-------------------------------------------------
873
- Range#cover? 2.327M (± 4.7%) i/s - 11.644M
874
- Range#include? 99.652k (± 5.4%) i/s - 503.604k
875
+ range#cover? 1.816M (± 5.6%) i/s - 9.060M
876
+ range#include? 83.344k (± 5.0%) i/s - 416.880k
877
+ range#member? 82.654k (± 5.0%) i/s - 412.499k
878
+ plain compare 2.581M (± 6.2%) i/s - 12.876M
875
879
876
880
Comparison:
877
- Range#cover?: 2327220.4 i/s
878
- Range#include?: 99651.6 i/s - 23.35x slower
881
+ plain compare: 2581211.8 i/s
882
+ range#cover?: 1816038.5 i/s - 1.42x slower
883
+ range#include?: 83343.9 i/s - 30.97x slower
884
+ range#member?: 82654.1 i/s - 31.23x slower
879
885
```
880
886
881
887
Original file line number Diff line number Diff line change 5
5
END_OF_JULY = Date . new ( 2015 , 7 , 31 )
6
6
DAY_IN_JULY = Date . new ( 2015 , 7 , 15 )
7
7
8
- def fast
9
- ( BEGIN_OF_JULY ..END_OF_JULY ) . cover? DAY_IN_JULY
10
- end
11
-
12
- def slow
13
- ( BEGIN_OF_JULY ..END_OF_JULY ) . include? DAY_IN_JULY
14
- end
15
-
16
8
Benchmark . ips do |x |
17
- x . report ( "Range#cover?" ) { fast }
18
- x . report ( "Range#include?" ) { slow }
9
+ x . report ( 'range#cover?' ) { ( BEGIN_OF_JULY ..END_OF_JULY ) . cover? DAY_IN_JULY }
10
+ x . report ( 'range#include?' ) { ( BEGIN_OF_JULY ..END_OF_JULY ) . include? DAY_IN_JULY }
11
+ x . report ( 'range#member?' ) { ( BEGIN_OF_JULY ..END_OF_JULY ) . member? DAY_IN_JULY }
12
+ x . report ( 'plain compare' ) { BEGIN_OF_JULY < DAY_IN_JULY && DAY_IN_JULY < END_OF_JULY }
13
+
19
14
x . compare!
20
15
end
You can’t perform that action at this time.
0 commit comments