title: GC.Collect() and PerformanceCounter
body: <p>A colleague of mine is convinced there is a memory leak in Oracle's odp.net ado.net implementation.  He has written a test program to test this theory and is doing the following after calling dispose on each object in order to determine how much memory is being freed:</p>
  
  <pre><code>PerformanceCounter p = new PerformanceCounter("Memory", "Available Bytes");
  
  GC.Collect();
  GC.WaitForPendingFinalizers();
  
  float mem = p.NextValue();
  </code></pre>
  
  <p>The resulting performance value is then compared with a value retrieved prior to disposing of the object. Will this produce accurate results?</p>