Overview
Explore real-world examples and techniques for optimizing .NET performance in this 40-minute conference talk from NDC Oslo 2023. Dive into memory allocations, garbage collection, and performance optimization strategies using the RabbitMQ .NET Client as a case study. Learn about advanced .NET language features such as ref structs, ref parameters, and code inlining, as well as constructs like Span, Memory, and ArrayPool. Discover how to apply these concepts to your own solutions through benchmarks and practical code examples. Gain insights into binary serialization, endianness, and System.Threading.Channels. Witness the impact of optimizations on real-world scenarios, including AMQP Frame handling and problem-solving approaches. Enhance your .NET performance optimization skills with this comprehensive exploration of cutting-edge techniques and best practices.
Syllabus
Intro
Memory Allocations
Garbage Collection
Garbage Collector Phases
Gen 2
Reference vs. value types
Performance Tips
Example: Convert a string to UTF8 bytes
Allocation Benchmark
Boxing - Benchmark
Binary Serialization and Endianness
Old: RabbitMQ .NET Client reading int64
ASM Diff
Binary Serialization Benchmark
System.Threading.Channels
Applying these optimizations in the real world
AMQP Frame
Problem 1
Solving the problems
Validating the changes
JetBrains dotTrace
PowerUp
Questions?
Taught by
NDC Conferences