Performance loop—A practical guide to profiling and benchmarking
summary
Shows a concrete profile with dotMemory/dotTrace workflow and a small MSMQ-based harness that publishes 1,000 messages and isolates the NServiceBus pipeline. Uses Benchmark.NET for short and long runs, removes 20–27 MB of allocations, and eliminates ~32.3% publish and ~14% receive CPU overhead. Demonstrates copying pipeline code into a dedicated repo as a copy-paste harness for controlled experiments, yielding a measured 10× speedup and then a further 5× improvement and validated by before/after traces.
AI-written summary · about
chapters (18)
- 0:00Profiling and benchmarking intro
- 1:46Why benchmarking feels easy but isn’t
- 3:53Why performance matters
- 7:01Performance awareness in practice
- 11:32The performance loop
- 16:27NServiceBus pipeline profiling
- 23:28Memory hot paths profiling
- 29:27CPU flame graphs
- 32:34Improving code after profiling
- 34:23Benchmarking improvements
- 39:44Good benchmark principles
- 45:06Reliable benchmarking best practices
- 51:04Benchmarking exception cases
- 52:30Validating improvements
- 54:58Regression testing with benchmarks
- 57:47Benchmarks in CI/CD
- 59:34Performance loop wrap-up
- 1:01:39Resources and closing
related talks
01h 03mThe performance loop—A practical guide to profiling and benchmarking
01h 03mApplication Performance Optimisation in Practice
01h 06mGet Better App Performance with this One Weird Trick
44m.NET Performance Investigation
39mProfiling and Benchmarking 101
42mMeasure Twice, Optimize Once: Real-World .NET Profiling with Visual Studio
01h 03mTurbocharged: Writing High-Performance C# and .NET Code
01h 02mWriting high performance code in .NET
