Renting reusable buffer arrays in high-throughput network and file I/O:
byte[] buffer = ArrayPool<byte>.Shared.Rent(65536); // Rent 64KB buffer
try
{
int bytesRead = await stream.ReadAsync(buffer.AsMemory(0, 65536));
ProcessData(buffer.AsSpan(0, bytesRead));
}
finally
{
ArrayPool<byte>.Shared.Return(buffer); // Return to pool for reuse!
}Key Rule: Remember that rented arrays may be larger than requested (Rent(1000) might return a 1024-byte array). Always slice by actual length (buffer.AsSpan(0, bytesRead))!