title: .NET : Monitoring Objects Lifetime (Birth/Death/Memory)
body: <p><strong>Issue :</strong> What is the best way to have a comprehensive view of birth/death/mem usage of <strong><em>ALL</em></strong> objects created during an application lifetime? (graphic report would be better)</p>
  
  <p><strong>Why such a question :</strong>
  Among many others, the idea behind that, is to reveal long-living objects that may never be collected by the garbage collector or cause memory trouble (such as heap/stack issues or so), and provide valuable information to efficiently manage object lifecycles<br><br> <em>(I actually just spent a whole night debugging a multithreaded application to finally notice that a "believed to be disposed/renewed" object was in fact still alive and smashing up the server memory.)</em></p>
  
  <p>VS2010 Performance Wizard &amp; Profiler might be a good starter...
  I stumbled upon few ways to do this programmatically but it involved wrapping up objects individually (painstaking and not code-seamless)</p>
  
  <p>I'm looking for something that would look like this : </p>
  
  <pre><code>Application START[-----------------------------------------------------------]END
  Object 1                [---------------------------]
  Object 2                          [---------------------------]
  Object 3           [-----------------------------------------------------]
  </code></pre>