Skip to content

Commit 5b81405

Browse files
authored
Add new benchmarks for UTF16 transcoding (#74229)
1 parent b07a2aa commit 5b81405

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

benchmark/single-source/Breadcrumbs.swift

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ public let benchmarks: [BenchmarkInfo] = [
2929

3030
CopyUTF16CodeUnits(workload: asciiWorkload, count: 500).info,
3131
CopyUTF16CodeUnits(workload: mixedWorkload, count: 500).info,
32+
CopyUTF16CodeUnits(workload: longMixedWorkload, count: 50).info,
33+
34+
CopyAllUTF16CodeUnits(workload: asciiWorkload, count: 1_000).info,
35+
CopyAllUTF16CodeUnits(workload: mixedWorkload, count: 100).info,
36+
CopyAllUTF16CodeUnits(workload: longASCIIWorkload, count: 7).info,
37+
CopyAllUTF16CodeUnits(workload: longMixedWorkload, count: 1).info,
3238

3339
MutatedUTF16ToIdx(workload: asciiWorkload, count: 50).info,
3440
MutatedUTF16ToIdx(workload: mixedWorkload, count: 50).info,
@@ -364,6 +370,11 @@ class CopyUTF16CodeUnits: BenchmarkBase {
364370
self.count = count
365371
super.init(name: "Breadcrumbs.CopyUTF16CodeUnits", workload: workload)
366372
}
373+
374+
init(name: String, workload: Workload, count: Int) {
375+
self.count = count
376+
super.init(name: name, workload: workload)
377+
}
367378

368379
override func setUp() {
369380
super.setUp()
@@ -393,6 +404,21 @@ class CopyUTF16CodeUnits: BenchmarkBase {
393404
}
394405
}
395406

407+
class CopyAllUTF16CodeUnits : CopyUTF16CodeUnits {
408+
override init(workload: Workload, count: Int) {
409+
super.init(
410+
name: "Breadcrumbs.CopyAllUTF16CodeUnits",
411+
workload: workload,
412+
count: count
413+
)
414+
}
415+
416+
override func setUp() {
417+
super.setUp()
418+
inputIndices = Array(repeating: 0 ..< inputString.utf16.count, count: count)
419+
}
420+
}
421+
396422
/// This is like `UTF16ToIdx` but appends to the string after every index
397423
/// conversion. In effect, this tests breadcrumb creation performance.
398424
class MutatedUTF16ToIdx: BenchmarkBase {

0 commit comments

Comments
 (0)