Skip to content

Commit 5c503c8

Browse files
committed
[benchmark] DataReplace refactored
Refactored to use shared test method and inlined runFunctions.
1 parent a9d9fef commit 5c503c8

File tree

1 file changed

+15
-30
lines changed

1 file changed

+15
-30
lines changed

benchmark/single-source/DataBenchmarks.swift

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,12 @@ public let DataBenchmarks = [
8080
BenchmarkInfo(name: "DataReset",
8181
runFunction: { resetBytes($0, in: 431..<809, data: medium) }, tags: d),
8282

83-
BenchmarkInfo(name: "DataReplaceSmall",
84-
runFunction: run_ReplaceSmall, tags: d),
85-
BenchmarkInfo(name: "DataReplaceMedium",
86-
runFunction: run_ReplaceMedium, tags: d),
87-
BenchmarkInfo(name: "DataReplaceLarge",
88-
runFunction: run_ReplaceLarge, tags: d),
83+
BenchmarkInfo(name: "DataReplaceSmall", runFunction: {
84+
replace($0, data: medium, subrange:431..<809, with: small) }, tags: d),
85+
BenchmarkInfo(name: "DataReplaceMedium", runFunction: {
86+
replace($0, data: medium, subrange:431..<809, with: medium) }, tags: d),
87+
BenchmarkInfo(name: "DataReplaceLarge", runFunction: {
88+
replace($0, data: medium, subrange:431..<809, with: large) }, tags: d),
8989

9090
BenchmarkInfo(name: "DataReplaceSmallBuffer",
9191
runFunction: run_ReplaceSmallBuffer, tags: d),
@@ -249,10 +249,16 @@ func resetBytes(_ N: Int, in range: Range<Data.Index>, data: Data) {
249249
}
250250
}
251251

252-
func benchmark_Replace(_ N: Int, _ range: Range<Data.Index>, _ data_: Data, _ replacement: Data) {
252+
@inline(never)
253+
func replace(
254+
_ N: Int,
255+
data: Data,
256+
subrange range: Range<Data.Index>,
257+
with replacement: Data
258+
) {
253259
for _ in 0..<10000*N {
254-
var data = data_
255-
data.replaceSubrange(range, with: replacement)
260+
var copy = data
261+
copy.replaceSubrange(range, with: replacement)
256262
}
257263
}
258264

@@ -290,27 +296,6 @@ public func setCount(_ N: Int, data: Data, extra: Int) {
290296
}
291297
}
292298

293-
@inline(never)
294-
public func run_ReplaceSmall(_ N: Int) {
295-
let data = sampleData(.medium)
296-
let replacement = sampleData(.small)
297-
benchmark_Replace(N, 431..<809, data, replacement)
298-
}
299-
300-
@inline(never)
301-
public func run_ReplaceMedium(_ N: Int) {
302-
let data = sampleData(.medium)
303-
let replacement = sampleData(.medium)
304-
benchmark_Replace(N, 431..<809, data, replacement)
305-
}
306-
307-
@inline(never)
308-
public func run_ReplaceLarge(_ N: Int) {
309-
let data = sampleData(.medium)
310-
let replacement = sampleData(.large)
311-
benchmark_Replace(N, 431..<809, data, replacement)
312-
}
313-
314299
@inline(never)
315300
public func run_ReplaceSmallBuffer(_ N: Int) {
316301
let data = sampleData(.medium)

0 commit comments

Comments
 (0)