If you are serious about getting the best performance possible out of a managed app, you need to be using a profiler.  The devs that designed and wrote the CLR still need to use a profiler to judge how to improve the performance of a managed app..

 

Answer questions like how many ArrayLists am I creating?  When is my peak memory usage?  Etc

 

Here is one profiler… there are others.  I know the guy that wrote this one and is the same guy that made the GC scale super well on multi-proc machines.  He knows memory management inside and out…

 

 

http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=36a3e666-6877-4c26-b62d-bfd7cb3154ac

 

Happy Profiling!