This is the most boring post of all times. I recently hit some performance issues in the form of sudden spikes in frames. I thought it had to do with garbage collection since it cropped up every 250-300ms. So I pulled my pants up and made a ReusableArray<T>. That wasn't the culprit, but still, now I have less garbage. I created some List<T> every frame where I kept my meshes that should be drawn which went through some linq to determine inside frustum, etc. However, I notices that the garbage was collected a bit less and it didn't run for as long as it did before.