Low-Level Performance Analysis with Diagnostic Tools
While distributed tracing works great for microservices, it’s less useful for deep performance analysis within a process. In this chapter, we’ll explore .NET diagnostics tools that allow us to detect and debug performance issues and profile inefficient code. We’ll also learn how to perform ad hoc performance analysis and capture necessary information automatically in production.
In this chapter, you will learn how to do the following:
- Use .NET runtime counters to identify common performance problems
- Use performance tracing to optimize inefficient code
- Collect diagnostics in production
By the end of this chapter, you will be able to debug memory leaks, identify thread pool starvation, and collect and analyze detailed performance traces with .NET diagnostics tools.