Ever got lost in reading the call stack trace from .NET profiler? I do in the recursive calls to functions. Other times I just want to get a feel of the application call stack to identify which areas should I be focusing on.

Josh Williams has written an amazing tool to help you out here. Performance Console starts where profiler ends. Once you have exported data from profiler into .csv files (using command line or export functionality), you can point the tool to the directory and the tool will generate a nice output for you.

The command line is very intuitive and you can do operations like show me call stack for all the functions where inclusive time is more than 5% and BTW, collapse all the un interesting nodes (e.g. where symbols are not present).

I have been using this tool for a few weeks now and believe me it has made my life so much simpler. It is certainly very useful in finding any regressions in the code.

So what does a developer dealing with unmanaged code do? Josh mentions in Rico's post introducing Performance Console that it works very well with unmanaged code as well.

Josh has written an introduction to the tool but you need to read the (short but very useful) documentation that comes with the download.

Give it a try!