@@ -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
21
28
private func autoreleasepool< T> ( _ block: ( ) -> T ) -> T { block ( ) }
22
29
#endif
@@ -87,21 +94,21 @@ let benchmarks = {
87
94
Benchmark ( " utf16-decode " , configuration: . init( warmupIterations: 1 , scalingFactor: . kilo) ) { benchmark in
88
95
for _ in benchmark. scaledIterations {
89
96
autoreleasepool {
90
- blackHole ( String ( bytes: asciiSmallStrDataUTF16BE, encoding: . utf16BigEndian) )
91
- blackHole ( String ( bytes: nonAsciiSmallStrDataUTF16BE, encoding: . utf16BigEndian) )
97
+ blackHole ( String ( bytes: asciiSmallStrDataUTF16BE, encoding: Encoding . utf16BigEndian) )
98
+ blackHole ( String ( bytes: nonAsciiSmallStrDataUTF16BE, encoding: Encoding . utf16BigEndian) )
92
99
93
- blackHole ( String ( bytes: asciiLargeStrDataUTF16BE, encoding: . utf16BigEndian) )
94
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16BE, encoding: . utf16BigEndian) )
100
+ blackHole ( String ( bytes: asciiLargeStrDataUTF16BE, encoding: Encoding . utf16BigEndian) )
101
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16BE, encoding: Encoding . utf16BigEndian) )
95
102
96
- blackHole ( String ( bytes: asciiSmallStrDataUTF16LE, encoding: . utf16LittleEndian) )
97
- blackHole ( String ( bytes: nonAsciiSmallStrDataUTF16LE, encoding: . utf16LittleEndian) )
103
+ blackHole ( String ( bytes: asciiSmallStrDataUTF16LE, encoding: Encoding . utf16LittleEndian) )
104
+ blackHole ( String ( bytes: nonAsciiSmallStrDataUTF16LE, encoding: Encoding . utf16LittleEndian) )
98
105
99
- blackHole ( String ( bytes: asciiLargeStrDataUTF16LE, encoding: . utf16LittleEndian) )
100
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16LE, encoding: . utf16LittleEndian) )
106
+ blackHole ( String ( bytes: asciiLargeStrDataUTF16LE, encoding: Encoding . utf16LittleEndian) )
107
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16LE, encoding: Encoding . utf16LittleEndian) )
101
108
102
109
// Use big endian input data with plain utf16 to get a valid string.
103
- blackHole ( String ( bytes: asciiLargeStrDataUTF16BE, encoding: . utf16) )
104
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16BE, encoding: . utf16) )
110
+ blackHole ( String ( bytes: asciiLargeStrDataUTF16BE, encoding: Encoding . utf16) )
111
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF16BE, encoding: Encoding . utf16) )
105
112
}
106
113
}
107
114
}
@@ -132,21 +139,21 @@ let benchmarks = {
132
139
Benchmark ( " utf32-decode " , configuration: . init( warmupIterations: 1 , scalingFactor: . kilo) ) { benchmark in
133
140
for _ in benchmark. scaledIterations {
134
141
autoreleasepool {
135
- blackHole ( String ( bytes: asciiSmallStrDataUTF32BE, encoding: . utf32BigEndian) )
136
- blackHole ( String ( bytes: nonAsciiSmallStrDataUTF32BE, encoding: . utf32BigEndian) )
142
+ blackHole ( String ( bytes: asciiSmallStrDataUTF32BE, encoding: Encoding . utf32BigEndian) )
143
+ blackHole ( String ( bytes: nonAsciiSmallStrDataUTF32BE, encoding: Encoding . utf32BigEndian) )
137
144
138
- blackHole ( String ( bytes: asciiLargeStrDataUTF32BE, encoding: . utf32BigEndian) )
139
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32BE, encoding: . utf32BigEndian) )
145
+ blackHole ( String ( bytes: asciiLargeStrDataUTF32BE, encoding: Encoding . utf32BigEndian) )
146
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32BE, encoding: Encoding . utf32BigEndian) )
140
147
141
- blackHole ( String ( bytes: asciiSmallStrDataUTF32LE, encoding: . utf32LittleEndian) )
142
- blackHole ( String ( bytes: nonAsciiSmallStrDataUTF32LE, encoding: . utf32LittleEndian) )
148
+ blackHole ( String ( bytes: asciiSmallStrDataUTF32LE, encoding: Encoding . utf32LittleEndian) )
149
+ blackHole ( String ( bytes: nonAsciiSmallStrDataUTF32LE, encoding: Encoding . utf32LittleEndian) )
143
150
144
- blackHole ( String ( bytes: asciiLargeStrDataUTF32LE, encoding: . utf32LittleEndian) )
145
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32LE, encoding: . utf32LittleEndian) )
151
+ blackHole ( String ( bytes: asciiLargeStrDataUTF32LE, encoding: Encoding . utf32LittleEndian) )
152
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32LE, encoding: Encoding . utf32LittleEndian) )
146
153
147
154
// Use big endian input data with plain UTF32 to get a valid string.
148
- blackHole ( String ( bytes: asciiLargeStrDataUTF32BE, encoding: . utf32) )
149
- blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32BE, encoding: . utf32) )
155
+ blackHole ( String ( bytes: asciiLargeStrDataUTF32BE, encoding: Encoding . utf32) )
156
+ blackHole ( String ( bytes: nonAsciiLargeStrDataUTF32BE, encoding: Encoding . utf32) )
150
157
}
151
158
}
152
159
}
0 commit comments