We are using JetBrains' dotTrace. What other profiling tools can be recommended that are better for profiling C# Windows Forms applications?
11 Answers
No. I have tried pretty much every .NET profiler on the market (ANTS, vTune, OptimizeIt, DevPartner, YourKit), and in my opinion dotTrace is the best of the lot. It is one of only two profilers I have used (the other being YourKit) that has low enough overhead to handle a highly CPU-intensive application.
If and only if your application is relatively light, I could recommend ANTS Profiler. Its line-by-line stats are sometimes quite useful, but they come at a price in profiling efficiency.

- 13,221
- 9
- 64
- 84

- 13,960
- 7
- 36
- 42
-
4I was using ANTS on an optimizer that use the processor completely and it seemed to work fine. – Tomas Pajonk Dec 17 '09 at 15:28
-
I really like the dotTrace series, as well. One thing to note though, it produces very inaccurate times for anything Linq-to-Sql (L2S) related in the Tracing mode (for compiled and ordinary queries). The Sampling mode might not have that problem, but is much less useful. The dotTrace 4 series had the same problem in the late betas. Don't know if they actually fixed that. I guess it's a general problem with code that relies heavily on expression trees. – skarmats Mar 29 '11 at 17:14
-
Not to say that the other profilers don't suffer from this. If I recall correctly, the ANTS profiler was better in that regard, but has an inefficient/annoying user interface compared to dotTrace. I tested one other product, which also had problems with this. Can't remember which one though - one of the (formerly) best known products. Anyway, that is a pretty big annoyance, since you cannot filter out the inaccurately measured methods and cannot put the values in proportion. – skarmats Mar 29 '11 at 17:17
-
-
I am surprised no one mentioned what you get with VS (ultimate and pro editions): http://msdn.microsoft.com/en-us/library/z9z62c29.aspx – markmnl Jul 31 '13 at 02:52
-
Jetbrains for the win, again. Note: I am not an employee of Jetbrains, drat the luck. – MrBoJangles Oct 14 '13 at 20:18
I have used the EQATEC Profiler. It is free and is a code profiler, not a memory profiler.

- 5,502
- 3
- 33
- 59

- 30,738
- 21
- 105
- 131
-
4It's pretty basic but better than nothing if you want a free profiler. – Meta-Knight Jan 07 '10 at 15:29
-
4For new readers; EQATEC Profiler is being phased out as of December 2013 and replaced by the non free Telerik JustTrace. – Polymorphix Jul 19 '13 at 06:50
-
For memory profiling you have both the free CLR profiler and the commercial .NET memory profiler. Both are excellent but the latter is a bit more polished.

- 4,376
- 2
- 23
- 30
We've got on really well with AQTime. The great thing from our point of view is that it does the unmanaged parts of our code too.

- 5,649
- 2
- 30
- 32
It hasn't been mentioned yet, but for memory analysis Windbg is about as thorough and low-level as you can get. Using it in combination with sos.dll is incredibly powerful, but there is a fairly steep learning curve.
It's a free tool though, and Tess Ferrandez' blog is a great place to start with it. ANTS and other profilers are much more user-friendly, but Windbg can slice and dice the managed heap like none other in my opinion.

- 44,917
- 17
- 105
- 161
Ants Profiler just released version 4.
We use it, and are quite happy with it. There's a 14 day trial to evaluate (as is true for most offerings).

- 6,504
- 4
- 30
- 29
We use DotTrace like you, but in the past we used Ants Profiler by RedGate. It is a nice tool also.

- 18,202
- 3
- 54
- 70
I am very happy with RedGate ANTS. The only other one I tried was the one that comes with Visual Studio Team, and it sucks.

- 68,373
- 70
- 259
- 447
-
1I actually prefer the VS one, it gives me more info than ANTS. You might prefer the ANTS profiler but I don't agree that the VS one sucks. It works well when you know how to use it. – Meta-Knight Jan 07 '10 at 15:31
-
1Not any more. For memory profiling I now recommend SciTech. It gives you summaries of memory leaks caused by stray delegates/event handlers and warns you when objects are being finalized instead of explicitly disposed. – Jonathan Allen Aug 31 '12 at 00:28
You should check out SpeedTrace. We are pleased with the software, and it helps us a lot in resolving the root causes of my problem.

- 1
- 1

- 11
- 1
I've been using the free SlimTune since its recent release. Although it has a minimal interface, it is super easy to use and provides good diagnostics which have already helped me a lot. It currently supports two kinds of displays, one of which is similar to nProf. It is from the same developer as SlimDX, so I expect the tool to become even better in the short term.
EDIT: As far as I know, it does not support memory profiling yet.

- 6,207
- 1
- 26
- 36
nProf is a good tool if you're looking for something free. It's kind of finicky at points, and a little buggy, but if you're on a tight budget, it'll do the job.

- 65,369
- 27
- 142
- 182
-
-
Seems like recently nProf has had some life breathed into it. It's been pretty stagnant for the last few years. Still no documentation though. I think your best bet is to just try it out. It's a pretty slim program, without a lot of options. Basically you just start your program from the profiler, and it records how long each method takes to run. When are are done running your program, it gives you totals of how long was spent in each method. Best thing to do is to run through the slow parts of your application, even just one action at a time, and see where it's slow. – Kibbee Jul 17 '09 at 23:34