@@ -46,10 +46,12 @@ Idioms
46
46
47
47
- [ General] ( #general )
48
48
- [ Array] ( #array )
49
+ - [ Date] ( #date )
49
50
- [ Enumerable] ( #enumerable )
50
51
- [ Hash] ( #hash )
51
52
- [ Proc & Block] ( #proc--block )
52
53
- [ String] ( #string )
54
+ - [ Time] ( #time )
53
55
- [ Range] ( #range )
54
56
55
57
### General
@@ -629,6 +631,27 @@ Comparison:
629
631
inject block: 14063.1 i/s - 1.35x slower
630
632
```
631
633
634
+ ### Date
635
+
636
+ ##### ` Date.iso8601 ` vs ` Date.parse ` [ code] ( code/date/iso8601-vs-parse.rb )
637
+
638
+ When expecting well-formatted data from e.g. an API, ` iso8601 ` is faster and will raise an ` ArgumentError ` on malformed input.
639
+
640
+ ```
641
+ $ ruby -v code/date/iso8601-vs-parse.rb
642
+ ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-darwin17]
643
+ Warming up --------------------------------------
644
+ Date.iso8601 28.880k i/100ms
645
+ Date.parse 15.805k i/100ms
646
+ Calculating -------------------------------------
647
+ Date.iso8601 328.035k (± 4.7%) i/s - 1.646M in 5.029287s
648
+ Date.parse 175.546k (± 3.8%) i/s - 885.080k in 5.049444s
649
+
650
+ Comparison:
651
+ Date.iso8601: 328035.3 i/s
652
+ Date.parse: 175545.9 i/s - 1.87x slower
653
+ ```
654
+
632
655
### Hash
633
656
634
657
##### ` Hash#[] ` vs ` Hash#fetch ` [ code] ( code/hash/bracket-vs-fetch.rb )
@@ -1193,6 +1216,26 @@ Comparison:
1193
1216
String#gsub/regex+/: 14668.1 i/s - 25.42x slower
1194
1217
```
1195
1218
1219
+ ### Time
1220
+
1221
+ ##### ` Time.iso8601 ` vs ` Time.parse ` [ code] ( code/time/iso8601-vs-parse.rb )
1222
+
1223
+ When expecting well-formatted data from e.g. an API, ` iso8601 ` is faster and will raise an ` ArgumentError ` on malformed input.
1224
+
1225
+ ```
1226
+ $ ruby -v code/time/iso8601-vs-parse.rb
1227
+ ruby 2.4.3p205 (2017-12-14 revision 61247) [x86_64-darwin17]
1228
+ Warming up --------------------------------------
1229
+ Time.iso8601 10.234k i/100ms
1230
+ Time.parse 4.228k i/100ms
1231
+ Calculating -------------------------------------
1232
+ Time.iso8601 114.485k (± 3.5%) i/s - 573.104k in 5.012008s
1233
+ Time.parse 43.711k (± 4.1%) i/s - 219.856k in 5.038349s
1234
+
1235
+ Comparison:
1236
+ Time.iso8601: 114485.1 i/s
1237
+ Time.parse: 43710.9 i/s - 2.62x slower
1238
+ ```
1196
1239
1197
1240
### Range
1198
1241
0 commit comments