2

I have to investigate a certain process which involves several (unknown at this point) steps. I need some efficient approach to analyze what general subproccess (residing in various assemblies) are involved considering time spans (possibly memory usage).

Just running the code with intelligently set breakpoints means spending too much time finding where it would be "intelligent" to place them. Later I will also have to recreate general sequence of the general logical steps out of hundreds of method calls and helper classes.

Generating seqence diagram will probably help, but again it may span from Earth to Mars).

So, may be you are aware of some tools that could help understand the logic of that process with some reasonable level of abstraction.

(I tried built-in profiler for VS - it's good but takes many hours to analyze the results, and actually shows hotpoints and again doesn't "restore" the actual logic.)

TheBoyan
  • 6,802
  • 3
  • 45
  • 61
Nickolodeon
  • 2,848
  • 3
  • 23
  • 38

2 Answers2

3

NDepend might be of help to you since you are performing code analysis.

Since you mentioned that you would like to generate a sequence diagram from the running code... Enterprise architect from Sparx systems can do that. Check out the manual.

This link might be useful to you also.

If you have some money to spend you could use RedGate Develper Bundle for .NET It has Performance profiler, Memory profiler etc. It has an evaluation version also.

There are also other cheaper alternatives for profilers.

Community
  • 1
  • 1
TheBoyan
  • 6,802
  • 3
  • 45
  • 61
0

There are more advanced profiler applications than the Visual Studio Profiler, but unless you're logic uses separate AppDomains or is otherwise easy to group, it will always take a considerable amount of time to investigate these kinds of issues.

Visual Studio Ultimate has the ability to generate dependency matrices and sequence diagrams from your code. VisualNDepend can do that as well. But while these will give you insights in the static behavior of the code, it won't help you to figure out the runtime behavior of it.

Code Analysis (in Visual Studio Premium and Ultimate) has a set of rules based on the new DataFlow Analysis Engine. It is possible to write custom rules for these, but it's not the simplest thing to do to say the least.

You might be able to combine IntelliTrace with the outcome of the Profiler data to pinpoint

jessehouwing
  • 106,458
  • 22
  • 256
  • 341