Ayende @ Rahien

Hi!
My name is Oren Eini
Founder of Hibernating Rhinos LTD and RavenDB.
You can reach me by phone or email:

ayende@ayende.com

+972 52-548-6969

, @ Q c

Posts: 5,953 | Comments: 44,410

filter by tags archive

Profiling with dotTrace


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 :-)


Comments

Graham Nash

"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,"

Switching to thread time instead of wall time might make those timings more clear, as wall time counts time sleeping.

Jimmy Bogard

Oh the chattiness of TFS...one place I worked at could only branch on weekends as it would take down the entire server for the other several hundred developers connecting to it. Lots of fun getting calls from Malaysia and Europe screaming "I can't access source control!!!"

asher

u should really give aqtime a run. much better than dotrace.

Adam V.

@asher: [citation needed]

Tristian Barrett

I'm sure you already recognize this; but one thing I noticed while using dotTrace and lots of remote calls, is that while your code is slowed down by the profiler, service and db calls aren't. So it's hard to directly compare how much time a remote call takes compared to an internal one, since the internal one is being exaggerated. So your remote calls are probably taking even longer percentage wise than they would appear to be in the profiler.

Frans Bouma

Does dottrace already support .net 3.5 ? The vs.net profiler in 2008 is starting to get on my nerves with its requirement of working with unsigned code...

Comment preview

Comments have been closed on this topic.

FUTURE POSTS

No future posts left, oh my!

RECENT SERIES

  1. The RavenDB Comic Strip (3):
    28 May 2015 - Part III – High availability & sleeping soundly
  2. Special Offer (2):
    27 May 2015 - 29% discount for all our products
  3. RavenDB Sharding (3):
    22 May 2015 - Adding a new shard to an existing cluster, splitting the shard
  4. Challenge (45):
    28 Apr 2015 - What is the meaning of this change?
  5. Interview question (2):
    30 Mar 2015 - fix the index
View all series

Syndication

Main feed Feed Stats
Comments feed   Comments Feed Stats