title: How can I track the frequency and volume of memory access in a .NET application during memory profiling?
body: <p>I'm attempting to reduce the memory footprint of a .NET application. Over time this application's use of memory has grown due to developers creating new, duplicate representations of data in memory for various purposes.</p>
  
  <p>I'm would like to determine how frequently these duplicitous representations of data are accessed so that I can decide whether or not to make them short-lived and create-on-access in order to reduce peak working set size.</p>
  
  <p>So my question is - what is the best way to track not only the size and volume of object allocations, <strong>but also the frequency and volume of <em>accesses</em> to objects?</strong> I know that all basic memory profilers handle allocation info - correlating that to memory access is what I'm interested in.</p>
  
  <p>To be clear, I'm not looking for an opinionated debate on whether this tool is better than that tool. Rather I'm looking for an answer which tells me how best to solve the problem of accounting for frequency and volume of memory accesses during memory profiling.</p>