3

I'm searching for software to do benchmarking, analysis, performance of code and apps. Something like Intel VTune.

Can anyone give me some names, free or payed, targeting c# apps.

thanks

Peter Cordes
  • 328,167
  • 45
  • 605
  • 847
Pedro Luz
  • 2,694
  • 4
  • 44
  • 54

5 Answers5

5

Redgate Performance Profiler

...their Memory Profiler will undoubtedly help as well.

Justin Niessner
  • 242,243
  • 40
  • 408
  • 536
3

It sounds like you have multiple purposes.

If you want to monitor the performance health of programs, benchmarks and profilers that measure are probably what you want.

If you need to make a program faster, and you have the source code for it, I think your best bet is to get something that samples the call stack and gives you line-level percent of wall-clock time. For this, don't look for high precision of timing. Look instead for high precision of pinpointing code that is responsible for high percentages of time. Especially in larger programs, these lines are function or method calls that you can find a way to avoid. Don't fall into the myth of thinking that the only problems are hotspots where the program counter lives, and don't fall into the myth that all I/O is necessary I/O.

There's a totally manual method that a few people use and works very well.

Community
  • 1
  • 1
Mike Dunlavey
  • 40,059
  • 14
  • 91
  • 135
  • thanks, im going to check that url :D im working on some software that handles huge amount of data, and im starting to have problems with showing that data in .net components, like treeviews and stuff. also want to test ways of improve memory consume, speed, etc :D – Pedro Luz Jun 07 '10 at 20:58
  • @Narven: Oh boy, that's exactly the kind of code that IME is prone to wasteful use of over-abstraction. The manual method will definitely show you why it is taking time. The fixes may require some heavy refactoring. – Mike Dunlavey Jun 07 '10 at 21:04
1

Such a tool is usually called a Profiler.
The (free) MS CLR Profiler (up to Fx 3.5) isn't bad, and a good place to start.

Update: a 2022 Blog about this.

H H
  • 263,252
  • 30
  • 330
  • 514
1

Visual Studio, in it's higher SKUs, includes multiple profilers which can be used for this purpose. If your application is using multiple threads, VS 2010's new Concurrency Profiler is incredible for profiling C# concurrent code.

There are many other performance profilers on the market which are useful for performance profiling as well. I personally like dotTrace and think it's a very clean interface.

Reed Copsey
  • 554,122
  • 78
  • 1,158
  • 1,373
0

I've used the EQATEC profiler which is free for personal use. It benchmarks run time and helped point out the inefficiencies that were causing bottlenecks in my code.

Robert Gowland
  • 7,677
  • 6
  • 40
  • 58