Profiling with dotTrace

time to read 2 min | 256 words

I have a tiny feature and a bug fix that I want to implement before I am going to focus solely improving SvnBridge performance. This is a really quick analysis of a single scenario.

Start dotTrace and set the application to profile then start it. There are a lot of options, but the default was always good for me.

image

In the application, prepare it for the scenario that you are going to perform. (In SvnBridge's case, this means just setting up the server to talk to):

image

Perform some actions against the application:

image

When you are done, hit Get Snapshot:

image

Now, I tend to go to the hotspots and check what is costing me.

image

The first line, WaitMessage call is fine, this is the WinForms client that is not doing much at the moment.

The second I can't really figure out, it is starting a thread, but that doesn't take so long. I am pretty sure that this is a case of mis-measuring, or just me not understanding this, but never mind that.

The rest of the calls, which takes huge amount of time, are... remote calls. I guess I should stop talking to TFS :-)