title: Process.PrivateMemorySize64 returning committed memory instead of private
body: <p>I'm writing a program in C# using .NET 4.5, that will allow me to monitor the memory, CPU and network usage of a particular process, and then chart that data according to my needs. </p>
  
  <p>In order to obtain the memory usage for a particular process, I am checking the <a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.privatememorysize64.aspx" rel="nofollow"><code>PrivateMemorySize64</code></a> property for that <code>Process</code> object. I am expecting to see the Private memory used by that process, but instead, it is showing the amount in Commit, as confirmed by the Windows Resource Monitor. </p>
  
  <p>My questions are:</p>
  
  <p>1) Does anybody know why this error is happening?
  2) Is there a fix for it?
  3) If no fix, is there another straightforward way I can obtain the private memory reserved for a process?</p>
  
  <p>Here are the relevant parts of my code:</p>
  
  <pre><code>using System;
  
  // I add all the open Processes to an array
  Process[] localAll = Process.GetProcesses();
  
  // I then add all the processes to a combobox to select from
  // There's a button that updates labels with requested info
  
  Process[] p = Process.GetProcessesByName(comboBox1.SelectedItem.ToString());
  label1.Text = p[0].PrivateMemorySize64.ToString() + " bytes";
  </code></pre>