Introducing Performance Console

Ever wonder how I get those nice looking HTML call trees with attributed costs like this one here in my last quiz?

Well, it turns out that Josh Williams wrote an excellent program for massaging the perf results that come out of our profiler.  The way it works is that you get a profile as usual and then you use the tools (or the UI) to export the data in .csv format.  Josh shows how in this article from the command line but the export function does the same job.

Once you have your .csv files you can use the newly released Performance Console to read those files and browse them.  Now I love this tool because it includes some of my favorite features (yes I nag very well, Josh can attest *grin*) such as “show me the call tree with all functions at least 5% inclusive time.” And the best part is you don’t have to keep clicking open-open-open to browse deep call trees.

By the way, our own profiler team looks at this tool and others very closely in deciding what to do in their next iteration so hopefully we’ll see more and more of this stuff being available without special downloads. 

But why wait?  You can have this goodness now.

One last great thing about the perfconsole tool — you can save the results of a session as HTML and then mail them or blog them or whatever.

Josh will be posting some usage hints soon.  But for now, go ahead and grab it and play.  You’ll love it!  Heck, post me some of your favorite outputs.

Did I mention its extensible?  I hope he posted the whole manual or I have to nag some more. 🙂

Try it, you won’t be sorry.

UPDATE:  Josh just wrote an introduction to Performance Console, find it here.

Comments (7)

  1. Shog9 says:

    For those of us in the non-Managed, non-TeamSystem ghetto, PerformanceValidator ( ) does a good job of producing similar reports.

    Btw – love the blog, Rico!

  2. joshwil says:

    Shog9 — TeamSystem is available with a 180 day free trial here:

    It works (as does PerfConsole) on managed and unmanaged code, in fact PerfConsole was created to satisfy my need to tune unmanaged code, specifically the unmanaged portion of the CLR.

  3. stevehem says:

    This is great! Thanks Josh.  After spending all this time looking for the "make your output look good like Rico’s" option in VSTS, now I know the secret and can quit using Excel.

  4. I recently had a fun time baking cookies with my three year old son.. He had a great time scooping out…

  5. Ever got lost in reading the call stack trace from .NET profiler? I do in the recursive calls to funtions….