You should use BenchmarkDotNet to measure time and memory. It does a warm-up to avoid measuring JIT time and automatically discards outliers.
You should also try using Span<T>. You’ll get better performance with easy to maintain code. Check my profile to find some articles on the subject.