Tool | Purpose | Pros and cons |
Perfomance monitor | Perfomance counters viewer. Records and visualize perfomance counter data | + easy to use + low overhead – may be sometimes misleading |
Windows Perfomance Toolkit | Record and visually ETW data. Focused mainly on Windows/drivers analysis. | + very powerful + low overhead possible – steep learning curve |
Perfview | Record and analyze ETW data with the help of predefined views. Fucused mainly on .NET related analysis. | + very powerful for .NET + low overhead possible – steep learning curve |
ProcDump, DebugDiag | Taking memory dump of a process.Either ad hoc or based on various metrics. | |
WinDbg | Debugging both managed and native code. With the help of powerful extensions provides extensive analysis possibilities. | |
dnSpy | Editing and debugging .NET assemblies even if source is not available | |
BenchmarkDotNet | Benchmarking library allowing us to benchmark .NET code with respect execution time and resource utilization. | |
Visual Studio | Well-know, general purpose IDE. Includes debugging, profiling, and memory dump analysis capabilities | |
Scitech .NET Memory Profiler | Tools dedicated to .NET memory analysis | |
JetBrains DotMemory | ||
RedGate ANTS Memory Profiler | ||
Intel VTune Amplifier and AMD CodeAnalyst Perfomance Analyzer | Hardware-level profiling of both native and managed code, including insight into cache utilization, CPU pipeline utilization, and much more. | |
Dynatrace & Appdynamics | Continuous monitoring tools including collecting ,NET related data (depends on the tools) |