The `Mean` column does indeed show that the Pool variant is slower, which is caused by the internal administering and locking that the Pool needs to do. But the `Gen0` column tells us that the Pool variant does less than half the number of Garbage Collects compared to the regular variant. [Adam Sitnik (author of Benchmark.NET) says](https://github.com/dotnet/BenchmarkDotNet/issues/872#issuecomment-419895546) "If GC decides to collect the memory during the actual workload (between Clock.Start and clock.GetElapsed) then it's included in the final results." I think with ~182 Garbage Collects in total we can safely say that the iterations themselves don't trigger a GC, so then the time needed for GC is not visible in the stats (it's spent inside Benchmark.NET code and not inside your code). This could change if you increase the count from 10000 to say 1000000 or even more. So what your code answers at the moment is only "is new SomeClass() faster than pooling it, while ignoring GC?", and the answer is very much "yes, it is".