title: C#, Why is the GC running several times per second?
body: <p>I'm working on a program that creates interactive charts. However, the following issue occurs even if the program's rendering layer is disabled.</p>
  
  <p>On certain screens in my application, according to the Visual Studio 2015 Diagnostic Tools, the GC is running back to back approximately 4 times per second, killing my application's performance (from 120fps to as low as 15fps).</p>
  
  <p>I took some memory snapshots expecting to see unexpected allocations, but according to the snapshots there's only one or two allocations and collections of System.Internal.HandleCollector+HandleType every few seconds, which appears to be normal, even when the issue isn't occurring.</p>
  
  <p>Some other things I've noticed:</p>
  
  <ul>
  <li>This happens on multiple machines.</li>
  <li>This happens with or without the debugger attached.</li>
  <li>Most of the application's CPU time is in clr.dll.</li>
  <li>The reason for each GC run is listed as "Small object heap
  allocation", even when there's no observable allocations in the snapshots.</li>
  </ul>
  
  <p>At this point I'm stumped. Has anyone seen this happen or know where I should start debugging?</p>