.NET Memory Expert (EN)
.NET Memory Expert is a 13-weeks online course in which we will teach you all about writing and diagnosing memory-aware C# code.
Introduction
.NET runtime - IL, JIT, assembler
Homework
Value vs reference type - layout, passing by value and reference
Stack vs heap
null/NullReferenceException
Array/list of classes/structs
Homework
Automatic memory management
Pauses/throughput/latency/aggressiveness
Your performance goal? Don't guess, measure
Homework
GC in .NET
GC modes, latency modes and other settings
Homework
Intro
Events
Event Tracing for Windows (ETW)
Linux Trace Toolkit Next Generation (LTTng)
EventPipes & CLI Diagnostic Tools
Homework
Counters
Dumps
Profilers & Application Performance Monitoring
Cloud & containers
Homework
Generations and other heaps
Roots
Homework
Operating system cooperation
The GC partitioning internals
The GC phases internals
Homework
Memory leak - because of no GCs
Memory leak - because of fragmentation
Memory leak - because of roots
Mid-life crisis and Nepotism
Homework
Andrey Akinshin
Christophe Nasarre
Konrad Kokosa - live Q&A
Measuring and self-measuring
Reducing allocations - hidden allocations
Reducing allocations - pooling
Reducing allocations - structs
Reducing allocations - strings
Homework
Finalization
Disposable objects
IoC containers
Weak references
Homework
Managed pointers
Span
Unsafe class
Pipelines
Homework
Hardware - memory, cache, CPU
Object layout vs cache
Access patterns
Homework
Pinning
Off the heap
Function pointers
Homework