Solving .NET performance issues
summary
Practical, tool-focused workflow for diagnosing .NET performance: use PerfView, the Visual Studio profiler and Linux perfcollect to capture CPU sampling, flame graphs, allocation counts and call trees; prefer warmup and release builds and inspect CPU exclusive time and allocation peaks rather than just labels. Shows finding and fixing a Unicode string-handling bug that caused thousands of allocations and a ~60 ms hotspot, then writing microbenchmarks to prove the improvement and prevent regressions.
AI-written summary · about
chapters (20)
- 0:00.NET performance troubleshooting
- 2:58Finding regressions
- 5:07CPU profiling
- 7:17Interpreting reports
- 10:08Memory allocation
- 13:28Startup profiling
- 16:03High CPU processes
- 18:54Startup deep dive
- 21:28Frame graphs
- 24:46Automating with ETW
- 28:02Comparing traces
- 30:15Process profiling
- 32:32Offline profiling
- 35:01Output formats
- 36:58VS vs standalone
- 39:07Big picture
- 40:15Correctness first
- 42:41String performance
- 44:06Writing benchmarks
- 45:49Choosing tools
related talks
59mDebugging and Profiling .NET Core Apps on Linux
01h 02mThe performance loop—A practical guide to profiling and benchmarking
50mDiagnostic techniques for .NET running on Linux and within containers
54mPragmatic Performance: When to care about perf, and what to do about it
01h 02mWriting high performance code in .NET
43mPragmatic Performance: When to care about perf, and what to do about it.
46mDeep dive into .NET performance and native AOT
47mUnlocking Performance Improvements in .NET
