Skip to content

Commit e4cdc48

Browse files
committed
[benchmark] DataToString, StringToData refactored
Refactored to use shared test method and inlined runFunctions.
1 parent 0fa784f commit e4cdc48

File tree

1 file changed

+17
-50
lines changed

1 file changed

+17
-50
lines changed

benchmark/single-source/DataBenchmarks.swift

Lines changed: 17 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -119,20 +119,27 @@ public let DataBenchmarks = [
119119
runFunction: { append($0, data: large, to: large) }, tags: d),
120120

121121
BenchmarkInfo(name: "DataToStringEmpty",
122-
runFunction: run_DataToStringEmpty, tags: d, legacyFactor: 50),
122+
runFunction: { string($0, from: emptyData) }, tags: d, legacyFactor: 50),
123123
BenchmarkInfo(name: "DataToStringSmall",
124-
runFunction: run_DataToStringSmall, tags: d, legacyFactor: 50),
124+
runFunction: { string($0, from: smallData) }, tags: d, legacyFactor: 50),
125125
BenchmarkInfo(name: "DataToStringMedium",
126-
runFunction: run_DataToStringMedium, tags: d, legacyFactor: 50),
126+
runFunction: { string($0, from: mediumData) }, tags: d, legacyFactor: 50),
127127

128128
BenchmarkInfo(name: "StringToDataEmpty",
129-
runFunction: run_StringToDataEmpty, tags: d, legacyFactor: 50),
129+
runFunction: { data($0, from: emptyString) }, tags: d, legacyFactor: 50),
130130
BenchmarkInfo(name: "StringToDataSmall",
131-
runFunction: run_StringToDataSmall, tags: d, legacyFactor: 50),
131+
runFunction: { data($0, from: smallString) }, tags: d, legacyFactor: 50),
132132
BenchmarkInfo(name: "StringToDataMedium",
133-
runFunction: run_StringToDataMedium, tags: d, legacyFactor: 50),
133+
runFunction: { data($0, from: mediumString) }, tags: d, legacyFactor: 50),
134134
]
135135

136+
let emptyString = ""
137+
let smallString = "\r\n"
138+
let mediumString = "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
139+
let emptyData = Data()
140+
let smallData = Data(smallString.utf8)
141+
let mediumData = Data(mediumString.utf8)
142+
136143
let small = sampleData(.small)
137144
let medium = sampleData(.medium)
138145
let large = sampleData(.large)
@@ -309,55 +316,15 @@ public func setCount(_ N: Int, data: Data, extra: Int) {
309316
}
310317

311318
@inline(never)
312-
public func run_DataToStringEmpty(_ N: Int) {
313-
let d = Data()
314-
for _ in 0..<200 * N {
315-
let s = String(decoding: d, as: UTF8.self)
316-
blackHole(s)
317-
}
318-
}
319-
320-
@inline(never)
321-
public func run_DataToStringSmall(_ N: Int) {
322-
let d = Data([0x0D, 0x0A])
323-
for _ in 0..<200 * N {
324-
let s = String(decoding: d, as: UTF8.self)
325-
blackHole(s)
326-
}
327-
}
328-
329-
@inline(never)
330-
public func run_DataToStringMedium(_ N: Int) {
331-
let d = Data([0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A, 0x0D, 0x0A])
332-
for _ in 0..<200 * N {
333-
let s = String(decoding: d, as: UTF8.self)
334-
blackHole(s)
335-
}
336-
}
337-
338-
@inline(never)
339-
public func run_StringToDataEmpty(_ N: Int) {
340-
let s = ""
341-
for _ in 0..<200 * N {
342-
let d = Data(s.utf8)
343-
blackHole(d)
344-
}
345-
}
346-
347-
@inline(never)
348-
public func run_StringToDataSmall(_ N: Int) {
349-
let s = "\r\n"
319+
public func string(_ N: Int, from data: Data) {
350320
for _ in 0..<200 * N {
351-
let d = Data(s.utf8)
352-
blackHole(d)
321+
blackHole(String(decoding: data, as: UTF8.self))
353322
}
354323
}
355324

356325
@inline(never)
357-
public func run_StringToDataMedium(_ N: Int) {
358-
let s = "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n"
326+
public func data(_ N: Int, from string: String) {
359327
for _ in 0..<200 * N {
360-
let d = Data(s.utf8)
361-
blackHole(d)
328+
blackHole(Data(string.utf8))
362329
}
363330
}

0 commit comments

Comments
 (0)