1
- //===--- InsertCharacter.swift ------------------------------------------------ ===//
1
+ //===--- InsertCharacter.swift --------------------------------------------===//
2
2
//
3
3
// This source file is part of the Swift.org open source project
4
4
//
12
12
13
13
import TestsUtils
14
14
15
+ let t : [ BenchmarkCategory ] = [ . validation, . api, . String]
16
+
15
17
public let InsertCharacter = [
16
- BenchmarkInfo ( name: " InsertCharacterEndIndex " , runFunction: run_InsertCharacterEndIndex, tags: [ . validation, . api] , setUpFunction: buildWorkload) ,
17
- BenchmarkInfo ( name: " InsertCharacterTowardsEndIndex " , runFunction: run_InsertCharacterTowardsEndIndex, tags: [ . validation, . api] , setUpFunction: buildWorkload) ,
18
- BenchmarkInfo ( name: " InsertCharacterStartIndex " , runFunction: run_InsertCharacterStartIndex, tags: [ . validation, . api] , setUpFunction: buildWorkload) ,
19
- BenchmarkInfo ( name: " InsertCharacterEndIndexNonASCII " , runFunction: run_InsertCharacterEndIndexNonASCII, tags: [ . validation, . api] , setUpFunction: buildWorkload) ,
20
- BenchmarkInfo ( name: " InsertCharacterTowardsEndIndexNonASCII " , runFunction: run_InsertCharacterTowardsEndIndexNonASCII, tags: [ . validation, . api] , setUpFunction: buildWorkload) ,
21
- BenchmarkInfo ( name: " InsertCharacterStartIndexNonASCII " , runFunction: run_InsertCharacterStartIndexNonASCII, tags: [ . validation, . api] , setUpFunction: buildWorkload)
18
+ BenchmarkInfo ( name: " InsertCharacterEndIndex " ,
19
+ runFunction: run_InsertCharacterEndIndex, tags: t,
20
+ setUpFunction: buildWorkload) ,
21
+ BenchmarkInfo ( name: " InsertCharacterTowardsEndIndex " ,
22
+ runFunction: run_InsertCharacterTowardsEndIndex, tags: t,
23
+ setUpFunction: buildWorkload) ,
24
+ BenchmarkInfo ( name: " InsertCharacterStartIndex " ,
25
+ runFunction: run_InsertCharacterStartIndex, tags: t,
26
+ setUpFunction: buildWorkload, legacyFactor: 5 ) ,
27
+ BenchmarkInfo ( name: " InsertCharacterEndIndexNonASCII " ,
28
+ runFunction: run_InsertCharacterEndIndexNonASCII, tags: t,
29
+ setUpFunction: buildWorkload) ,
30
+ BenchmarkInfo ( name: " InsertCharacterTowardsEndIndexNonASCII " ,
31
+ runFunction: run_InsertCharacterTowardsEndIndexNonASCII, tags: t,
32
+ setUpFunction: buildWorkload) ,
33
+ BenchmarkInfo ( name: " InsertCharacterStartIndexNonASCII " ,
34
+ runFunction: run_InsertCharacterStartIndexNonASCII, tags: t,
35
+ setUpFunction: buildWorkload)
22
36
]
23
37
24
38
let str = String ( repeating: " A very long ASCII string. " , count: 200 )
@@ -76,7 +90,8 @@ func run_InsertCharacterEndIndexNonASCII(_ N: Int) {
76
90
// Insert at start index
77
91
78
92
@inline ( __always)
79
- func insertAtStartIndex( _ c: Character , in string: String , count: Int , insertions: Int ) {
93
+ func insertAtStartIndex(
94
+ _ c: Character , in string: String , count: Int , insertions: Int ) {
80
95
var workload = str
81
96
for _ in 0 ..< count {
82
97
for _ in 0 ..< insertions {
@@ -89,7 +104,7 @@ func insertAtStartIndex(_ c: Character, in string: String, count: Int, insertion
89
104
90
105
@inline ( never)
91
106
func run_InsertCharacterStartIndex( _ N: Int ) {
92
- insertAtStartIndex ( " w " , in: str, count: N * 75 , insertions: 50 )
107
+ insertAtStartIndex ( " w " , in: str, count: N * 15 , insertions: 50 )
93
108
}
94
109
95
110
@inline ( never)
0 commit comments