Mastering ArrayPool<T> in .NET to Cut Down on Allocations