@@ -111,31 +111,11 @@ func sampleData(_ type: SampleKind) -> Data {
111
111
112
112
}
113
113
114
- func benchmark_Subscript( _ N: Int , _ data: Data , _ index: Data . Index ) {
115
- for _ in 1 ... N {
116
- _ = data [ index]
117
- }
118
- }
119
-
120
- func benchmark_Count( _ N: Int , _ data: Data ) {
121
- for _ in 1 ... 10000 * N {
122
- _ = data. count
123
- }
124
- }
125
-
126
- func benchmark_SetCount( _ N: Int , _ data_: Data , _ count: Int ) {
127
- var data = data_
128
- let orig = data. count
129
- for _ in 1 ... 10000 * N {
130
- data. count = count
131
- data. count = orig
132
- }
133
- }
134
-
135
114
func benchmark_AccessBytes( _ N: Int , _ data: Data ) {
136
115
for _ in 1 ... 10000 * N {
137
116
data. withUnsafeBytes { ( ptr: UnsafePointer < UInt8 > ) in
138
- // do nothing here
117
+ // Ensure that the compiler does not optimize away this call
118
+ blackHole ( ptr. pointee)
139
119
}
140
120
}
141
121
}
@@ -218,22 +198,33 @@ func benchmark_AppendData(_ N: Int, _ lhs: Data, _ rhs: Data) {
218
198
219
199
@inline ( never)
220
200
public func run_Subscript( _ N: Int ) {
221
- let data = sampleData ( . veryLarge )
201
+ let data = sampleData ( . medium )
222
202
let index = 521
223
- benchmark_Subscript ( N, data, index)
203
+ for _ in 1 ... 10000 * N {
204
+ // Ensure that the compiler does not optimize away this call
205
+ blackHole ( data [ index] )
206
+ }
224
207
}
225
208
226
209
@inline ( never)
227
210
public func run_Count( _ N: Int ) {
228
211
let data = sampleData ( . medium)
229
- benchmark_Count ( N, data)
212
+ for _ in 1 ... 10000 * N {
213
+ // Ensure that the compiler does not optimize away this call
214
+ blackHole ( data. count)
215
+ }
230
216
}
231
217
232
218
@inline ( never)
233
219
public func run_SetCount( _ N: Int ) {
234
220
let data = sampleData ( . medium)
235
221
let count = data. count + 100
236
- benchmark_SetCount ( N, data, count)
222
+ var otherData = data
223
+ let orig = data. count
224
+ for _ in 1 ... 10000 * N {
225
+ otherData. count = count
226
+ otherData. count = orig
227
+ }
237
228
}
238
229
239
230
@inline ( never)
0 commit comments