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 @@ -842,18 +842,24 @@ Comparison:
842
842
843
843
```
844
844
$ ruby -v code/range/cover-vs-include.rb
845
- ruby 2.2.2p95 (2015-04-13 revision 50295 ) [x86_64-darwin14 ]
845
+ ruby 2.2.3p173 (2015-08-18 revision 51636 ) [x86_64-linux ]
846
846
847
847
Calculating -------------------------------------
848
- Range#cover? 95.445k i/100ms
849
- Range#include? 9.326k i/100ms
848
+ range#cover? 85.467k i/100ms
849
+ range#include? 7.720k i/100ms
850
+ range#member? 7.783k i/100ms
851
+ plain compare 102.189k i/100ms
850
852
-------------------------------------------------
851
- Range#cover? 2.327M (± 4.7%) i/s - 11.644M
852
- Range#include? 99.652k (± 5.4%) i/s - 503.604k
853
+ range#cover? 1.816M (± 5.6%) i/s - 9.060M
854
+ range#include? 83.344k (± 5.0%) i/s - 416.880k
855
+ range#member? 82.654k (± 5.0%) i/s - 412.499k
856
+ plain compare 2.581M (± 6.2%) i/s - 12.876M
853
857
854
858
Comparison:
855
- Range#cover?: 2327220.4 i/s
856
- Range#include?: 99651.6 i/s - 23.35x slower
859
+ plain compare: 2581211.8 i/s
860
+ range#cover?: 1816038.5 i/s - 1.42x slower
861
+ range#include?: 83343.9 i/s - 30.97x slower
862
+ range#member?: 82654.1 i/s - 31.23x slower
857
863
```
858
864
859
865
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