Good C# profilers?

M

Mark

Hi...

I was just wondering what recommendations people had for C# code profilers?
I'm trying to figure out where a lot of our app's time is going.

I downloaded and am trying ProfileSharp Enterprise Edition, but I'm finding
the interface awkward and the results suspect (profiling for cpu cycles, it
says Thread.Sleep is the most expensive function).

Has anyone had particularly good experience with a C# code profiler?

Thanks
Mark
 
W

wdudek

We use the ANTS Profiler (from Redgate I think). I would recomend it. It
provides for several differnt types of profiling against time and memory. The
report it spits out is pretty detailed. I'm pretty sure there is a full trial
version on their website.
 
M

Mark

Funny you should mention that... I had just downloaded their trial. I like
the integrated by-line hot spot reporting, but (unless I'm missing something)
they don't seem to have anything but elapsed time measurement - i.e. no "most
cpu intensive" reporting.

I was going to download the Compuware DevStudio Partner trial and see how
that worked. I've used it in the past trying to profile server-side asp
script, but it was very buggy and gave very suspect results.

Thanks
Mark
 
C

Cowboy \(Gregory A. Beamer\)

DevStudio is good. Ants is good. The bits in Team System are not bad.

If you want to research, there are quite a few here:
http://sharptoolbox.com/categories/profilers-debuggers

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

*************************************************
| Think outside the box!
|
*************************************************
 
C

Cowboy \(Gregory A. Beamer\)

DotTrace is nice, especially for the pricing structure. Some profilers are
quite a bit more expensive than the $500 spent on DotTrace.

--
Gregory A. Beamer
MVP, MCP: +I, SE, SD, DBA

*************************************************
| Think outside the box!
|
*************************************************
 
W

wdudek

There is a memory profiler in ants it may give the cpu info, but I'm not sure
off the top of my head. I'll try and check when I'm at work.
 
M

Mark

Ended up kicking the tires on 5 profilers: Rational PurifyPlus ($1450),
Compuware DevPartner Studio ($2400), Red Gate ANTS ($295), JetBrains dotTrace
($500), and ProfileSharp (open source).

All but the first 2 only did elapsed-time profiling. As a result in a
highly-threaded application Thread.Sleep() came up disproportionately high in
the hot-spot list.

ANTS and dotTrace both say they'll support cpu profiling in their next
releases. I found the dotTrace ui really awkward.

As with my past experience of DevPartner Studio, the profiler adds *a lot*
of overhead, to the point where it impacts the results quite a bit. The
problems with their suggestions for mitigating the overhead (don't profile
the MS assemblies) is that the calls you make into the framework get
radically discounted and the results aren't a great representation of
reality. DPS has some other tools that sound nice if they worked but seem
fatally flawed. The automated code review tool, for example, goes into an
infinite loop and died on me every time it was asked to do more than about 20
source files.

Of the ones I tested, PurifyPlus seemed to have the best profiling options
with less overhead (than DPS anyway) and was very helpful. Now if I can just
get the budget for it :)

I looked for a couple of the ones on the sharptoolbox.com list but several
of the links seemed dead.

YMMV.

Mark
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top