I decided to give
Jetbrains' dotTrace a try, since I had a clear need to do some performance tuning on an in-design application at work. The symptoms were down to a line in the data access area that was calling out to a service to get data that would be the same for every user. This data would change fairly unoften, and only when a new client was signed and set up.
So with that in mind, I expected to see a poor performance from the service call, and have something to measure against when I implemented a cache for the results.
What I was not expecting to find was a 2.5 second delay on every page! It turns out that a third party upload control, an HttpModule that shall remain nameless, was causing lengthy delays while reading its config properties on every ASP.NET request. The HttpModule was implemented in the main web.config for the application, resulting in even the public pages, and parts of the application that would get no gain from having the upload control's module loaded were taking the performance hit.
The simple solution was just to move the module's declaration into a lower Web.Config, in the folders where the upload was actually taking place. The moral of the story is that a) HttpModules can be dangerous (this was a situation that would've been so much better suited for an HttpHandler), and b) performance tuning tools should be a no-brainer for a developer, and can even help coding practices for things that would never normally have crossed your mind!
Lastly, dotTrace seems extremely easy to use, and I'd highly recommend it.