The performance loop—A practical guide to profiling and benchmarking
summary
Concrete recipe for measuring and improving runtime: extract the pipeline into a small harness, run BenchmarkDotNet short runs then full runs, and capture CPU and memory snapshots with dotTrace (or perfview/perf). Replacing IO with Task.CompletedTask and trimming DI noise yields repeatable benchmarks; changes reported: removed ~20MB behavior-chain allocations, cut publisher CPU by 32.3% and receiver CPU by ~14%, and overall receive allocations from 653MB to 596MB. Use result-compare in CI to fail on regressions and prefer focused, repeatable permutations.
AI-written summary · about
chapters (9)
- 0:00Welcome
- 7:08Why optimizations matter
- 12:29Performance loop framework
- 20:53Profiling with tools
- 35:21Code improvements
- 41:23BenchmarkDotNet
- 53:18Validating in production
- 59:34Regression prevention in CI/CD
- 1:01:21Closing and resources
related talks
47mSolving .NET performance issues
01h 02mApplication Performance Optimisation in Practice
32mWhat the game industry taught me about performance
48mFantastic Performance and Where to Find It
47mPractical Performance Analysis
43mBenchmarking your application
59mDebugging and Profiling .NET Core Apps on Linux
01h 01mDebugging and Profiling .NET Core Apps on Linux
