@@ -29,6 +29,12 @@ public let benchmarks: [BenchmarkInfo] = [
29
29
30
30
CopyUTF16CodeUnits ( workload: asciiWorkload, count: 500 ) . info,
31
31
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,
32
38
33
39
MutatedUTF16ToIdx ( workload: asciiWorkload, count: 50 ) . info,
34
40
MutatedUTF16ToIdx ( workload: mixedWorkload, count: 50 ) . info,
@@ -364,6 +370,11 @@ class CopyUTF16CodeUnits: BenchmarkBase {
364
370
self . count = count
365
371
super. init ( name: " Breadcrumbs.CopyUTF16CodeUnits " , workload: workload)
366
372
}
373
+
374
+ init ( name: String , workload: Workload , count: Int ) {
375
+ self . count = count
376
+ super. init ( name: name, workload: workload)
377
+ }
367
378
368
379
override func setUp( ) {
369
380
super. setUp ( )
@@ -393,6 +404,21 @@ class CopyUTF16CodeUnits: BenchmarkBase {
393
404
}
394
405
}
395
406
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
+
396
422
/// This is like `UTF16ToIdx` but appends to the string after every index
397
423
/// conversion. In effect, this tests breadcrumb creation performance.
398
424
class MutatedUTF16ToIdx : BenchmarkBase {
0 commit comments