- Totalt 0 kr
.NET minne - prestanda och felsökning
Lägg till en bevakning så meddelar vi dig så snart varan är i lager igen.
.NET minne - prestanda och felsökning
Efter denna workshop, kommer du få en fullständig förståelse över hur den automatiska minneshanteringen fungerar i .NET (både .NET Framework och .NET core). Workshopen kommer att ge dig de kunskaper som krävs för att skriva minnes-effektiva program, samt hur man diagnostiserar vanliga minnesrelaterade problem.
Den kommer att inte bara förklara hur saker och ting kan användas, utan också hur och varför de är implementerade som de är. Men denna djupa insikt och förståelse, så kommer du mycket lättare att förstå och lösa framtida prestandaproblem.
Denna workshop är uppdelad i 50/50 mellan teori och praktik. De nämnda sakerna kommer att praktiskt gås igenom i de olika övningarna eller demonstreras live. Det ingår också övningar där deltagarna ska applicera sin erhållna kunskap, diagnosticera problem samt optimera kod.
- Bli en bättre .NET programmerare och få kunskaper om minneshantering
- Förstå hur och varför minnet hanteras av .NET runtime
- Lära dig skriva minneseffektiv kod
- Utforska avancerad minneshantering
- Hur man övervakar och diagnosticerar olika typiska minnesproblem
- Hur .NET’s inbygga garbage-collector fungerar
Målgrupp
Alla .NET utvecklare kommer att ha nytta av denna workshop! Med start från grunderna i hur .NET runtime fungerar, så kommer workshoppen att gå igenom alla aspekter av minneshanteringen som är relevant för dagens .NET utevecklare.
Förkunskaper
Kursen utgår från att du som deltagare är bekväm med att läsa och skriva program som använder sig av moderna C# konstruktioner, så som async/await, Linq och lambda-utttryck.
Vad du kommer lära dig
Basic concepts
- manual vs automatic memory management
- operating system, virtual memory and .NET process
Memory partitioning
- generations - what's "healthy state"?
- Small and Large Object Heap - are there any caveats?
- segments - should I care?
Allocations
- how allocation work in SOH and LOH - is it "cheap"?
- common sources of allocations and avoiding them
- stackalloc - our super-fast allocator
Garbage collector
- how it works - Mark, Plan, Sweep and Compact
- OutOfMemoryException - why, how, when?
- Memory Leak!
- Server vs Workstation - which to choose?
- Background vs Non-concurrent - which to choose?
- programmatically control
Lifetime management
- explicit cleanup - IDisposable interface
- implicit cleanup - finalization
- weak references
Advanced topics
- structures all the way - ref structs
- Span and Memory
- Unsafe class and code
- Pipelines
Data-oriented design
- tactical data-oriented design
- strategic data-oriented design
Dessert
- ClrMD library
- TraceEvent library