Don’t need to understand the details of .NET. Until you do
summary
Covers concrete pitfalls and fixes: GZipStream allocation and extra buffer copies that thrash the LOH, timer queues optimized for creation (one case shows 400,000 timers), JSON configuration created per request leaking file watchers, string interning causing global lock contention, LINQ and delegate allocations in hot paths, and ConcurrentDictionary.Values making expensive snapshots. Shows use of profilers, source.dot.net and BenchmarkDotNet, cites .NET 5/6 improvements and a memory-cache fix that was deployed and validated.
AI-written summary · about
chapters (17)
- 0:00Start
- 0:09David Fowler
- 3:41Details Matter
- 9:23How Do You Learn Details
- 12:37Timers
- 14:23Configuration
- 19:08Memory Stream
- 21:59Buffer Copies and Allocations
- 24:45How Does String Internet Work
- 38:25How Values Works in Concurrent Dictionary
- 42:52Tools To Use for Research
- 44:49Details Are Volatile
- 45:30Keep Measuring
- 45:54Mental Model
- 46:31Questions
- 49:40Favorite Method in Dotnet
- 51:28What Contributes More to Performance Improvements
related talks
55mMicro-optimizations in the .Net World
01h 06mGet Better App Performance with this One Weird Trick
04mInterview
49mYou are doing logging in .NET wrong. Let’s fix it
42mMeasure Twice, Optimize Once: Real-World .NET Profiling with Visual Studio
42mASP .NET Basics for Experts
01h 03mPerformance loop—A practical guide to profiling and benchmarking
50mAnalyzing Code in .NET
