|
8 | 8 | using System.Threading.Tasks; |
9 | 9 | using Internal; |
10 | 10 | using Resources; |
| 11 | + using NetBase64 = System.Buffers.Text.Base64; |
11 | 12 |
|
12 | 13 | /// <summary>Provides functionality for encoding data into the Base-64 text representations and back.</summary> |
13 | 14 | /// <remarks><b>Performance:</b> Highly optimized. Base64 encodes data in independent 3-byte groups with no serial dependency chain, making it amenable to SIMD vectorization and parallel processing. Encoding and decoding leverage .NET's hardware-accelerated <see cref="System.Buffers.Text.Base64"/> implementation (AVX2 on supported hardware) across multiple cores.</remarks> |
@@ -74,12 +75,11 @@ public override void EncodeStream(Stream inputStream, Stream outputStream, int l |
74 | 75 | // Each chunk slot: ChunkSize/3*4+4 bytes |
75 | 76 | var outStart = i * (ChunkSize / 3 * 4 + 4); |
76 | 77 |
|
77 | | - System.Buffers.Text.Base64.EncodeToUtf8( |
78 | | - inputBufs[slot].AsSpan(inputStart, procLen), |
79 | | - outputBufs[slot].AsSpan(outStart), |
80 | | - out _, |
81 | | - out var written, |
82 | | - isFinal); |
| 78 | + NetBase64.EncodeToUtf8(inputBufs[slot].AsSpan(inputStart, procLen), |
| 79 | + outputBufs[slot].AsSpan(outStart), |
| 80 | + out _, |
| 81 | + out var written, |
| 82 | + isFinal); |
83 | 83 |
|
84 | 84 | chunkSizes[slot][i] = written; |
85 | 85 | }); |
@@ -247,12 +247,11 @@ public override void DecodeStream(Stream inputStream, Stream outputStream, bool |
247 | 247 | var endGroup = bounds[i + 1]; |
248 | 248 | var isFinal = i == numChunks - 1 && isLastBatch; |
249 | 249 |
|
250 | | - System.Buffers.Text.Base64.DecodeFromUtf8( |
251 | | - cBuf.AsSpan(startGroup * 4, (endGroup - startGroup) * 4), |
252 | | - ob.AsSpan(startGroup * 3), |
253 | | - out _, |
254 | | - out var written, |
255 | | - isFinal); |
| 250 | + NetBase64.DecodeFromUtf8(cBuf.AsSpan(startGroup * 4, (endGroup - startGroup) * 4), |
| 251 | + ob.AsSpan(startGroup * 3), |
| 252 | + out _, |
| 253 | + out var written, |
| 254 | + isFinal); |
256 | 255 |
|
257 | 256 | sizes[i] = written; |
258 | 257 | }); |
|
0 commit comments