1

Long-time OS X developer here, so I'm a bit confused on what kind of profiling tools exist on Windows that are similar to the OS X Instruments.

With Instruments I can literally see function calls and how long each is taking, as well as threads to determine which are probably eating up too much CPU time.

I've tried the built in profiler but it is only telling me CPU usage over time, no call trees.

Does the built-in profiler support this? Or should I be looking at third party tools?

Thanks in advance!

Geesu
  • 5,928
  • 11
  • 43
  • 72

5 Answers5

2

You can see all of that in the VS2010 profiler, although there are third party tools that does it better/easier perhaps. (DotTrace, ANTS Profiler from RedGate etc.).

In VS2010 if you go to Analyze > Launch Performance Wizard, you have four options. The first two are related to method level timings and counts, i.e. single threaded performance analysis. The third is related to allocations, and the fourth option will let you view analysis of multi threaded applicatiosn (usage of individual cpu cores, lock contention and so on). For multi threaded analysis, check "Visualize the behavior of a multi threaded application" as well.

Anders Forsgren
  • 10,827
  • 4
  • 40
  • 77
  • So this is what I tried to do, but it always gives me an error of PRF0025: No data was collected. I could start it via command line using http://stackoverflow.com/questions/6298537/why-cant-i-profile-using-vsperfmon-by-attaching-to-dllhost-exe but it doesn't give me ANY useful information. Only the length of each thread, which isn't really helpful. I'd love a call stack/graph of some sort. Note: My app has to run as admin, not sure if that matters (VS is running as admin). – Geesu Jun 25 '12 at 14:49
  • I'd create a trivial hello-world example and benchmark that first to see that everything works as it is supposed to in the simplest example. – Anders Forsgren Jun 25 '12 at 15:20
0

Red Gate's ANTS Profiler is a very useful tool for profiling your .NET applications; however, it's not free.

With dottrace, Jetbrains produced a tool to profile both performance and memory.

Marius Schulz
  • 15,976
  • 12
  • 63
  • 97
0

I've used ANTS before, it's pretty good but I've never bothered with anything other than the trial

http://www.red-gate.com/products/dotnet-development/ants-performance-profiler

0

RedGate do some good tools for this - ANTS profiler is available

Also dotTrace from JetBrains

Charleh
  • 13,749
  • 3
  • 37
  • 57
0

EQATEC, ANTS, and DotTrace are high-quality well-built tools, and I suppose the VS2010 profiler is also.

That said, IMHO the best tool of all is the one you don't have to pay anything for, random-pausing, and others think so too, as here, and also the last paragraph of this answer. This link outlines some experience with it, where a series of problems are found and removed, leading to a speedup factor that probably violates your expectations.

Community
  • 1
  • 1
Mike Dunlavey
  • 40,059
  • 14
  • 91
  • 135