@@ -17,6 +17,13 @@ import func Benchmark.blackHole
1717import Foundation
1818#else
1919import FoundationEssentials
20+ import FoundationBenchmarkSupport
21+ #endif
22+
23+ #if FOUNDATION_FRAMEWORK
24+ private typealias Encoding = String . Encoding
25+ #else
26+ private typealias Encoding = FoundationEssentialsStringEncoding
2027#endif
2128
2229let benchmarks = {
@@ -85,21 +92,21 @@ let benchmarks = {
8592 Benchmark ( " utf16-decode " , configuration: . init( warmupIterations: 1 , scalingFactor: . kilo) ) { benchmark in
8693 for _ in benchmark. scaledIterations {
8794 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) )
9097
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) )
93100
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) )
96103
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) )
99106
100107 // 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) )
103110 }
104111 }
105112 }
@@ -130,21 +137,21 @@ let benchmarks = {
130137 Benchmark ( " utf32-decode " , configuration: . init( warmupIterations: 1 , scalingFactor: . kilo) ) { benchmark in
131138 for _ in benchmark. scaledIterations {
132139 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) )
135142
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) )
138145
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) )
141148
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) )
144151
145152 // 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) )
148155 }
149156 }
150157 }
0 commit comments