title: .NET - high memory usage by clr.dll and native heaps
body: <p>I have been performing memory leak analysis using DebugDiag for a .NET application which has shown continuous increase in memory.</p>
  
  <p>After several test dumps and then capturing dumps over a day, I see that the module <code>clr.dll</code> has 5.08 MB of allocations in first dump, 286.4 MB of allocations in second and 609.56 MB in the third. </p>
  
  <p>Specifically, the rise is in allocations caused by <code>clr!DoNDirectCall__PatchGetThreadCall+7b</code> which has 894.33 KB allocation in first, 280.85 MB in second and 601.13 MB in third. Here are some of the call stacks from the third dump -</p>
  
  <pre><code>Call stack sample 1
  
  Address   0x00730074`00210048 
  Allocation Time   00:09:03 since tracking started 
  Allocation Size   34 Bytes 
  
  
  Function   Source   Destination 
  clr!DoNDirectCall__PatchGetThreadCall+7b       
  mscorlib_ni+b9597b       
  mscorlib_ni+b940ed       
  mscorlib_ni+b9513e       
  System_Management_ni+dc561       
  System_Management_ni+aa364       
  System_Management_ni+e4616       
  
  Call stack sample 2
  
  Address   0x00730074`00210048 
  Allocation Time   00:05:00 since tracking started 
  Allocation Size   34 Bytes 
  
  
  Function   Source   Destination 
  clr!DoNDirectCall__PatchGetThreadCall+7b       
  mscorlib_ni+9bb2cc       
  mscorlib_ni+b934aa       
  System_Management_ni+dc714       
  System_Management_ni+acb99       
  System_Management_ni+e41a5       
  
  
  Call stack sample 3
  
  Address   0x00730074`00210048 
  Allocation Time   00:05:00 since tracking started 
  Allocation Size   34 Bytes 
  
  
  Function   Source   Destination 
  clr!DoNDirectCall__PatchGetThreadCall+7b       
  mscorlib_ni+9bb2cc       
  mscorlib_ni+b934aa       
  System_Management_ni+dc714       
  System_Management_ni+acb99       
  System_Management_ni+e41a5       
  0x6448017AE50    
  </code></pre>
  
  <p>What could be causing this and how do I find out more about this ?</p>
  
  <p><em><strong>Also, my code uses the avaliable C# methods to run remote WMI queries and retrieve that data.</em></strong></p>
  
  <p>In addition, my Native Heaps usage also increases. There are 40 native heaps for my application. The memory usage of the last heap always increases. Its total usage goes from 67.57 MB to 1.59 GB to 3.82 GB. What could be the cause of this, and is this related to <code>clr</code>'s usage ?</p>