@@ -15,30 +15,25 @@ import Foundation
15
15
16
16
let d : [ BenchmarkCategory ] = [ . validation, . api, . Data]
17
17
18
- /// Workload scaling: Inner loop multipliers
19
- let M = 10_000 /// default
20
- let I = 100_000 /// Data initialization
21
- let S = 200 /// String conversions
22
-
23
18
public let DataBenchmarks = [
24
19
BenchmarkInfo ( name: " DataCreateEmpty " ,
25
- runFunction: { for _ in 0 ..< $0* I / 10 { blackHole ( Data ( ) ) } } ,
20
+ runFunction: { for _ in 0 ..< $0* 10_000 { blackHole ( Data ( ) ) } } ,
26
21
tags: d, legacyFactor: 10 ) ,
27
22
BenchmarkInfo ( name: " DataCreateSmall " ,
28
- runFunction: { for _ in 0 ..< $0* I / 1000 { blackHole ( sampleData ( . small) ) } } ,
23
+ runFunction: { for _ in 0 ..< $0* 100 { blackHole ( sampleData ( . small) ) } } ,
29
24
tags: d, legacyFactor: 1000 ) ,
30
25
BenchmarkInfo ( name: " DataCreateMedium " ,
31
- runFunction: { for _ in 0 ..< $0* M / 100 { blackHole ( sampleData ( . medium) ) } } ,
26
+ runFunction: { for _ in 0 ..< $0* 100 { blackHole ( sampleData ( . medium) ) } } ,
32
27
tags: d, legacyFactor: 100 ) ,
33
28
34
29
BenchmarkInfo ( name: " DataCreateEmptyArray " ,
35
- runFunction: { for _ in 0 ..< $0* I / 50 { blackHole ( Data ( [ ] ) ) } } , tags: d,
30
+ runFunction: { for _ in 0 ..< $0* 2_000 { blackHole ( Data ( [ ] ) ) } } , tags: d,
36
31
legacyFactor: 50 ) ,
37
32
BenchmarkInfo ( name: " DataCreateSmallArray " ,
38
- runFunction: { for _ in 0 ..< $0* I / 50 { blackHole ( Data (
33
+ runFunction: { for _ in 0 ..< $0* 2_000 { blackHole ( Data (
39
34
[ 0 , 1 , 2 , 3 , 4 , 5 , 6 ] ) ) } } , tags: d, legacyFactor: 50 ) ,
40
35
BenchmarkInfo ( name: " DataCreateMediumArray " ,
41
- runFunction: { for _ in 0 ..< $0* M / 20 { blackHole ( Data ( [
36
+ runFunction: { for _ in 0 ..< $0* 500 { blackHole ( Data ( [
42
37
0 , 1 , 2 , 3 , 4 , 5 , 6 ,
43
38
0 , 1 , 2 , 3 , 4 , 5 , 6 ,
44
39
0 , 1 , 2 , 3 , 4 , 5 , 6 ,
@@ -47,117 +42,125 @@ public let DataBenchmarks = [
47
42
48
43
BenchmarkInfo ( name: " DataSubscriptSmall " ,
49
44
runFunction: { let data = small
50
- for _ in 0 ..< $0* M { blackHole ( data [ 1 ] ) } } , tags: d) ,
45
+ for _ in 0 ..< $0* 10_000 { blackHole ( data [ 1 ] ) } } , tags: d) ,
51
46
BenchmarkInfo ( name: " DataSubscriptMedium " ,
52
47
runFunction: { let data = medium
53
- for _ in 0 ..< $0* M { blackHole ( data [ 521 ] ) } } , tags: d) ,
48
+ for _ in 0 ..< $0* 10_000 { blackHole ( data [ 521 ] ) } } , tags: d) ,
54
49
55
50
BenchmarkInfo ( name: " DataCountSmall " ,
56
- runFunction: { count ( $0* M , data: small) } , tags: d) ,
51
+ runFunction: { count ( $0* 10_000 , data: small) } , tags: d) ,
57
52
BenchmarkInfo ( name: " DataCountMedium " ,
58
- runFunction: { count ( $0* M , data: medium) } , tags: d) ,
53
+ runFunction: { count ( $0* 10_000 , data: medium) } , tags: d) ,
59
54
60
55
BenchmarkInfo ( name: " DataSetCountSmall " ,
61
- runFunction: { setCount ( $0* M , data: small, extra: 3 ) } , tags: d) ,
56
+ runFunction: { setCount ( $0* 10_000 , data: small, extra: 3 ) } , tags: d) ,
62
57
BenchmarkInfo ( name: " DataSetCountMedium " ,
63
- runFunction: { setCount ( $0* M / 10 , data: medium, extra: 100 ) } , tags: d,
58
+ runFunction: { setCount ( $0* 1_000 , data: medium, extra: 100 ) } , tags: d,
64
59
legacyFactor: 10 ) ,
65
60
66
61
BenchmarkInfo ( name: " DataAccessBytesSmall " ,
67
- runFunction: { withUnsafeBytes ( $0* M , data: small) } , tags: d) ,
62
+ runFunction: { withUnsafeBytes ( $0* 10_000 , data: small) } , tags: d) ,
68
63
BenchmarkInfo ( name: " DataAccessBytesMedium " ,
69
- runFunction: { withUnsafeBytes ( $0* M , data: medium) } , tags: d) ,
64
+ runFunction: { withUnsafeBytes ( $0* 10_000 , data: medium) } , tags: d) ,
70
65
71
66
BenchmarkInfo ( name: " DataMutateBytesSmall " ,
72
- runFunction: { withUnsafeMutableBytes ( $0* M / 20 , data: small) } , tags: d,
67
+ runFunction: { withUnsafeMutableBytes ( $0* 500 , data: small) } , tags: d,
73
68
legacyFactor: 20 ) ,
74
69
BenchmarkInfo ( name: " DataMutateBytesMedium " ,
75
- runFunction: { withUnsafeMutableBytes ( $0* M / 20 , data: medium) } , tags: d,
70
+ runFunction: { withUnsafeMutableBytes ( $0* 500 , data: medium) } , tags: d,
76
71
legacyFactor: 20 ) ,
77
72
78
73
BenchmarkInfo ( name: " DataCopyBytesSmall " ,
79
- runFunction: { copyBytes ( $0* M , data: small) } , tags: d) ,
74
+ runFunction: { copyBytes ( $0* 10_000 , data: small) } , tags: d) ,
80
75
BenchmarkInfo ( name: " DataCopyBytesMedium " ,
81
- runFunction: { copyBytes ( $0* M / 2 , data: medium) } , tags: d,
76
+ runFunction: { copyBytes ( $0* 5_000 , data: medium) } , tags: d,
82
77
legacyFactor: 2 ) ,
83
78
84
79
BenchmarkInfo ( name: " DataAppendBytesSmall " ,
85
- runFunction: { append ( $0* M , bytes: 3 , to: small) } , tags: d) ,
80
+ runFunction: { append ( $0* 10_000 , bytes: 3 , to: small) } , tags: d) ,
86
81
BenchmarkInfo ( name: " DataAppendBytesMedium " ,
87
- runFunction: { append ( $0* M / 20 , bytes: 809 , to: medium) } , tags: d,
82
+ runFunction: { append ( $0* 500 , bytes: 809 , to: medium) } , tags: d,
88
83
legacyFactor: 20 ) ,
89
84
90
85
BenchmarkInfo ( name: " DataAppendArray " ,
91
- runFunction: { append ( $0* M / 100 , arraySize: 809 , to: medium) } , tags: d,
86
+ runFunction: { append ( $0* 100 , arraySize: 809 , to: medium) } , tags: d,
92
87
legacyFactor: 100 ) ,
93
88
94
89
BenchmarkInfo ( name: " DataReset " ,
95
- runFunction: { resetBytes ( $0* M / 100 , in: 431 ..< 809 , data: medium) } ,
90
+ runFunction: { resetBytes ( $0* 100 , in: 431 ..< 809 , data: medium) } ,
96
91
tags: d, legacyFactor: 100 ) ,
97
92
98
93
BenchmarkInfo ( name: " DataReplaceSmall " , runFunction: {
99
- replace ( $0* M / 100 , data: medium, subrange: 431 ..< 809 , with: small) } ,
94
+ replace ( $0* 100 , data: medium, subrange: 431 ..< 809 , with: small) } ,
100
95
tags: d, legacyFactor: 100 ) ,
101
96
BenchmarkInfo ( name: " DataReplaceMedium " , runFunction: {
102
- replace ( $0* M / 100 , data: medium, subrange: 431 ..< 809 , with: medium) } ,
97
+ replace ( $0* 100 , data: medium, subrange: 431 ..< 809 , with: medium) } ,
103
98
tags: d, legacyFactor: 100 ) ,
104
99
BenchmarkInfo ( name: " DataReplaceLarge " , runFunction: {
105
- replace ( $0* M / 100 , data: medium, subrange: 431 ..< 809 , with: large) } ,
100
+ replace ( $0* 100 , data: medium, subrange: 431 ..< 809 , with: large) } ,
106
101
tags: d, legacyFactor: 100 ) ,
107
102
108
103
BenchmarkInfo ( name: " DataReplaceSmallBuffer " , runFunction: {
109
- replaceBuffer ( $0* M / 100 , data: medium, subrange: 431 ..< 809 , with: small) } ,
104
+ replaceBuffer ( $0* 100 , data: medium, subrange: 431 ..< 809 , with: small) } ,
110
105
tags: d, legacyFactor: 100 ) ,
111
106
BenchmarkInfo ( name: " DataReplaceMediumBuffer " , runFunction: {
112
- replaceBuffer ( $0* M / 100 , data: medium, subrange: 431 ..< 809 , with: medium) } ,
107
+ replaceBuffer ( $0* 100 , data: medium, subrange: 431 ..< 809 , with: medium) } ,
113
108
tags: d, legacyFactor: 100 ) ,
114
109
BenchmarkInfo ( name: " DataReplaceLargeBuffer " , runFunction: {
115
110
replaceBuffer ( $0* 10 , data: medium, subrange: 431 ..< 809 , with: large) } ,
116
111
tags: d) ,
117
112
118
113
BenchmarkInfo ( name: " DataAppendSequence " ,
119
- runFunction: { append ( $0* M / 100 , sequenceLength: 809 , to: medium) } ,
114
+ runFunction: { append ( $0* 100 , sequenceLength: 809 , to: medium) } ,
120
115
tags: d, legacyFactor: 100 ) ,
121
116
122
117
BenchmarkInfo ( name: " DataAppendDataSmallToSmall " ,
123
- runFunction: { append ( $0* M / 20 , data: small, to: small) } , tags: d,
118
+ runFunction: { append ( $0* 500 , data: small, to: small) } , tags: d,
124
119
legacyFactor: 20 ) ,
125
120
BenchmarkInfo ( name: " DataAppendDataSmallToMedium " ,
126
- runFunction: { append ( $0* M / 20 , data: small, to: medium) } , tags: d,
121
+ runFunction: { append ( $0* 500 , data: small, to: medium) } , tags: d,
127
122
legacyFactor: 20 ) ,
128
123
BenchmarkInfo ( name: " DataAppendDataSmallToLarge " ,
129
- runFunction: { append ( $0* M / 200 , data: small, to: large) } , tags: d,
124
+ runFunction: { append ( $0* 50 , data: small, to: large) } , tags: d,
130
125
legacyFactor: 200 ) ,
131
126
BenchmarkInfo ( name: " DataAppendDataMediumToSmall " ,
132
- runFunction: { append ( $0* M / 20 , data: medium, to: small) } , tags: d,
127
+ runFunction: { append ( $0* 500 , data: medium, to: small) } , tags: d,
133
128
legacyFactor: 20 ) ,
134
129
BenchmarkInfo ( name: " DataAppendDataMediumToMedium " ,
135
- runFunction: { append ( $0* M / 20 , data: medium, to: medium) } , tags: d,
130
+ runFunction: { append ( $0* 500 , data: medium, to: medium) } , tags: d,
136
131
legacyFactor: 20 ) ,
137
132
BenchmarkInfo ( name: " DataAppendDataMediumToLarge " ,
138
- runFunction: { append ( $0* 50 , data: medium, to: large) } , tags: d) ,
133
+ runFunction: { append ( $0* 50 , data: medium, to: large) } , tags: d,
134
+ legacyFactor: 200 ) ,
139
135
BenchmarkInfo ( name: " DataAppendDataLargeToSmall " ,
140
- runFunction: { append ( $0* M / 200 , data: large, to: small) } , tags: d,
136
+ runFunction: { append ( $0* 50 , data: large, to: small) } , tags: d,
141
137
legacyFactor: 200 ) ,
142
138
BenchmarkInfo ( name: " DataAppendDataLargeToMedium " ,
143
- runFunction: { append ( $0* M / 200 , data: large, to: medium) } , tags: d,
139
+ runFunction: { append ( $0* 50 , data: large, to: medium) } , tags: d,
144
140
legacyFactor: 200 ) ,
145
141
BenchmarkInfo ( name: " DataAppendDataLargeToLarge " ,
146
- runFunction: { append ( $0* 50 , data: large, to: large) } , tags: d) ,
142
+ runFunction: { append ( $0* 50 , data: large, to: large) } , tags: d,
143
+ legacyFactor: 200 ) ,
147
144
148
145
BenchmarkInfo ( name: " DataToStringEmpty " ,
149
- runFunction: { string ( $0* S, from: emptyData) } , tags: d, legacyFactor: 50 ) ,
146
+ runFunction: { string ( $0* 200 , from: emptyData) } , tags: d,
147
+ legacyFactor: 50 ) ,
150
148
BenchmarkInfo ( name: " DataToStringSmall " ,
151
- runFunction: { string ( $0* S, from: smallData) } , tags: d, legacyFactor: 50 ) ,
149
+ runFunction: { string ( $0* 200 , from: smallData) } , tags: d,
150
+ legacyFactor: 50 ) ,
152
151
BenchmarkInfo ( name: " DataToStringMedium " ,
153
- runFunction: { string ( $0* S, from: mediumData) } , tags: d, legacyFactor: 50 ) ,
152
+ runFunction: { string ( $0* 200 , from: mediumData) } , tags: d,
153
+ legacyFactor: 50 ) ,
154
154
155
155
BenchmarkInfo ( name: " StringToDataEmpty " ,
156
- runFunction: { data ( $0* S, from: emptyString) } , tags: d, legacyFactor: 50 ) ,
156
+ runFunction: { data ( $0* 200 , from: emptyString) } , tags: d,
157
+ legacyFactor: 50 ) ,
157
158
BenchmarkInfo ( name: " StringToDataSmall " ,
158
- runFunction: { data ( $0* S, from: smallString) } , tags: d, legacyFactor: 50 ) ,
159
+ runFunction: { data ( $0* 200 , from: smallString) } , tags: d,
160
+ legacyFactor: 50 ) ,
159
161
BenchmarkInfo ( name: " StringToDataMedium " ,
160
- runFunction: { data ( $0* S, from: mediumString) } , tags: d, legacyFactor: 50 ) ,
162
+ runFunction: { data ( $0* 200 , from: mediumString) } , tags: d,
163
+ legacyFactor: 50 ) ,
161
164
]
162
165
163
166
let emptyString = " "
0 commit comments