High Performance .NET
summary
Claims a concrete speedup on the One Billion Row Challenge from 2.2 minutes to 2.2 seconds by applying measurable changes: use Span<byte> and avoid per-line string allocations, parse numbers as integers (then divide) instead of float parsing, use memory-mapped files plus parallel chunking and work-stealing, measure each change with BenchmarkDotNet, and finish with Native AOT. Code runs fast, benchmarks show microsecond improvements, and the repository contains the working examples.
AI-written summary · about
chapters (18)
- 0:00Conference welcome
- 1:02Why performance matters
- 4:101 billion row challenge intro
- 5:12Naive implementation flaws
- 8:25Allocations slow .NET code
- 11:21Optimize by doing less
- 13:07Read UTF-8 from bytes
- 16:40Span for efficient parsing
- 18:26Profiling tools often fail
- 19:32Benchmark with BenchmarkDotNet
- 22:26Avoid allocations tricks
- 26:01Stackalloc and safety
- 29:55Benchmark key generation
- 32:16Float vs integer parsing
- 35:33Memory-mapped files I/O
- 39:10Parallelize with memory-mapped files
- 42:19Native AOT compilation
- 44:48Live demo: Native AOT
related talks
01h 03mTurbocharged: Writing High-Performance C# and .NET Code
47mUnlocking Performance Improvements in .NET
01h 06mGet Better App Performance with this One Weird Trick
37mRock Your Code Code and App Performance for Microsoft .Net
01h 00mRock Your Code: Code & App Performance for Microsoft .NET
01h 03mApplication Performance Optimisation in Practice
57mPragmatic Performance: When to care about perf, and what to do about it
44m.NET Performance Investigation
