@@ -17,6 +17,13 @@ import func Benchmark.blackHole
17
17
import Foundation
18
18
#else
19
19
import FoundationEssentials
20
+ import FoundationBenchmarkSupport
21
+ #endif
22
+
23
+ #if FOUNDATION_FRAMEWORK
24
+ private typealias Encoding = String . Encoding
25
+ #else
26
+ private typealias Encoding = FoundationEssentialsStringEncoding
20
27
#endif
21
28
22
29
let benchmarks = {
@@ -85,21 +92,21 @@ let benchmarks = {
85
92
Benchmark ( " utf16-decode " , configuration: . init( warmupIterations: 1 , scalingFactor: . kilo) ) { benchmark in
86
93
for _ in benchmark. scaledIterations {
87
94
autoreleasepool {
88
- blackHole ( String ( bytes: asciiSmallStrDataUTF16BE, encoding: . utf16BigEndian) )
89
- blackHole ( String ( bytes: nonAsciiSmallStrDataUTF16BE, encoding: . utf16BigEndian) )
95
+ blackHole ( String ( bytes: asciiSmallStrDataUTF16BE, encoding: Encoding . utf16BigEndian) )
96
+ blackHole ( String ( bytes: nonAsciiSmallStrDataUTF16BE, encoding: Encoding . utf16BigEndian) )
90
97
91
- blackHole ( String ( bytes: asciiLargeStrDataUTF16BE, encoding: . utf16BigEndian) )
92
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16BE, encoding: . utf16BigEndian) )
98
+ blackHole ( String ( bytes: asciiLargeStrDataUTF16BE, encoding: Encoding . utf16BigEndian) )
99
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16BE, encoding: Encoding . utf16BigEndian) )
93
100
94
- blackHole ( String ( bytes: asciiSmallStrDataUTF16LE, encoding: . utf16LittleEndian) )
95
- blackHole ( String ( bytes: nonAsciiSmallStrDataUTF16LE, encoding: . utf16LittleEndian) )
101
+ blackHole ( String ( bytes: asciiSmallStrDataUTF16LE, encoding: Encoding . utf16LittleEndian) )
102
+ blackHole ( String ( bytes: nonAsciiSmallStrDataUTF16LE, encoding: Encoding . utf16LittleEndian) )
96
103
97
- blackHole ( String ( bytes: asciiLargeStrDataUTF16LE, encoding: . utf16LittleEndian) )
98
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16LE, encoding: . utf16LittleEndian) )
104
+ blackHole ( String ( bytes: asciiLargeStrDataUTF16LE, encoding: Encoding . utf16LittleEndian) )
105
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16LE, encoding: Encoding . utf16LittleEndian) )
99
106
100
107
// Use big endian input data with plain utf16 to get a valid string.
101
- blackHole ( String ( bytes: asciiLargeStrDataUTF16BE, encoding: . utf16) )
102
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16BE, encoding: . utf16) )
108
+ blackHole ( String ( bytes: asciiLargeStrDataUTF16BE, encoding: Encoding . utf16) )
109
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16BE, encoding: Encoding . utf16) )
103
110
}
104
111
}
105
112
}
@@ -130,21 +137,21 @@ let benchmarks = {
130
137
Benchmark ( " utf32-decode " , configuration: . init( warmupIterations: 1 , scalingFactor: . kilo) ) { benchmark in
131
138
for _ in benchmark. scaledIterations {
132
139
autoreleasepool {
133
- blackHole ( String ( bytes: asciiSmallStrDataUTF32BE, encoding: . utf32BigEndian) )
134
- blackHole ( String ( bytes: nonAsciiSmallStrDataUTF32BE, encoding: . utf32BigEndian) )
140
+ blackHole ( String ( bytes: asciiSmallStrDataUTF32BE, encoding: Encoding . utf32BigEndian) )
141
+ blackHole ( String ( bytes: nonAsciiSmallStrDataUTF32BE, encoding: Encoding . utf32BigEndian) )
135
142
136
- blackHole ( String ( bytes: asciiLargeStrDataUTF32BE, encoding: . utf32BigEndian) )
137
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32BE, encoding: . utf32BigEndian) )
143
+ blackHole ( String ( bytes: asciiLargeStrDataUTF32BE, encoding: Encoding . utf32BigEndian) )
144
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32BE, encoding: Encoding . utf32BigEndian) )
138
145
139
- blackHole ( String ( bytes: asciiSmallStrDataUTF32LE, encoding: . utf32LittleEndian) )
140
- blackHole ( String ( bytes: nonAsciiSmallStrDataUTF32LE, encoding: . utf32LittleEndian) )
146
+ blackHole ( String ( bytes: asciiSmallStrDataUTF32LE, encoding: Encoding . utf32LittleEndian) )
147
+ blackHole ( String ( bytes: nonAsciiSmallStrDataUTF32LE, encoding: Encoding . utf32LittleEndian) )
141
148
142
- blackHole ( String ( bytes: asciiLargeStrDataUTF32LE, encoding: . utf32LittleEndian) )
143
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32LE, encoding: . utf32LittleEndian) )
149
+ blackHole ( String ( bytes: asciiLargeStrDataUTF32LE, encoding: Encoding . utf32LittleEndian) )
150
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32LE, encoding: Encoding . utf32LittleEndian) )
144
151
145
152
// Use big endian input data with plain UTF32 to get a valid string.
146
- blackHole ( String ( bytes: asciiLargeStrDataUTF32BE, encoding: . utf32) )
147
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32BE, encoding: . utf32) )
153
+ blackHole ( String ( bytes: asciiLargeStrDataUTF32BE, encoding: Encoding . utf32) )
154
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32BE, encoding: Encoding . utf32) )
148
155
}
149
156
}
150
157
}
0 commit comments