Blaming perf issues on Garbage Collection is like blaming your hangover on your liver…
Its the thing that’s saving you from your code.
— Ben Adams
It’s a common situation for memory to be a bottleneck in your code. In this case, it’s very important to understand how memory works on different levels: from CPU to .NET runtime. This knowledge allows designing good benchmarks. On the other hand, if you don’t know some memory “features,”1 it’s very easy for you to design a wrong benchmark: you can miss an important part of the performance space or measure the performance of ...