PooledMemoryStream
Functions like a readable  MemoryStream but uses an ArrayPool to supply the backing memory.
            This stream support buffering long sizes.
            
                
The backing array pool.
            
public PooledMemoryStream(ArrayPool<byte> arrayPool, int bufferSize, int? initialBufferSize = default)
Creates a new, empty memory stream based on the given ArrayPool.