Skip to main content
CF

.NET Memory Expert

43h 15m 52s
English
Paid

«.NET Memory Expert» is a comprehensive 14-week online program focused on efficient memory management within the .NET environment. This curriculum ranges from foundational concepts such as value and reference types to advanced subjects like Span<T> and Data-Oriented Design with native memory.

Importance of Memory Management in .NET

Even with automated memory management in .NET, a deep understanding of optimization techniques is crucial. Proper memory management is vital to prevent issues like memory leaks and excessive CPU usage, especially in large-scale applications.

Course Content Overview

  • Value and Reference Types: Understand the differences and their impact on performance.
  • Advanced Memory Concepts: Dive into Span<T> and explore native memory handling techniques.
  • Data-Oriented Design: Learn how to efficiently work with native memory structures to enhance application performance.

Practical Learning and Tools

The course includes hands-on exercises and practical assignments at the end of each module to reinforce learning. Participants will gain proficiency in using tools like PerfView for in-depth memory analysis and practice writing efficient C# code tailored for performance.

PerfView for Memory Analysis

Discover how to use PerfView to analyze and understand memory usage patterns in .NET applications, enabling you to effectively identify and resolve memory issues.

Writing Efficient C# Code

Learn best practices in C# programming that focus on memory efficiency and performance optimization. This course will guide you in writing cleaner, more efficient code.

Additional

https://github.com/dotnetos/memoryexpert-course

About the Author: Konrad Kokosa

Konrad Kokosa thumbnail

Konrad Kokosa is a Polish .NET specialist and the author of Pro .NET Memory Management (Apress) — the canonical reference work on the CLR memory model and garbage collector. He runs Dotnetos, a .NET training company focused entirely on the deep performance side of the platform.

His CourseFlix listing carries two Konrad Kokosa courses: .NET Memory Expert and Async Expert. Material is paid and aimed at senior .NET engineers working on performance-critical applications who need to understand the CLR at the level the framework hides from most developers.

Watch Online 65 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 65 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Introduction
All Course Lessons (65)
#Lesson TitleDurationAccess
1
Introduction Demo
28:25
2
.NET runtime - IL, JIT, assembler
02:54:18
3
Homework
00:52
4
Value vs reference type - layout, passing by value and reference
45:19
5
Stack vs heap
01:08:33
6
null/NullReferenceException
20:30
7
Array/list of classes/structs
15:25
8
Homework
00:37
9
Automatic memory management
01:07:43
10
Pauses/throughput/latency/aggressiveness
53:05
11
Your performance goal? Don't guess, measure
26:52
12
Homework
01:24
13
GC in .NET
31:40
14
GC modes, latency modes and other settings
01:56:25
15
Homework
01:05
16
Intro
06:13
17
Events
20:29
18
Event Tracing for Windows (ETW)
01:12:48
19
Linux Trace Toolkit Next Generation (LTTng)
25:50
20
EventPipes & CLI Diagnostic Tools
44:45
21
Homework
00:16
22
Counters
49:11
23
Dumps
01:32:49
24
Profilers & Application Performance Monitoring
19:40
25
Cloud & containers
57:41
26
Homework
00:15
27
Generations and other heaps
02:00:23
28
Roots
01:58:16
29
Homework
00:16
30
Operating system cooperation
01:03:21
31
The GC partitioning internals
01:17:47
32
The GC phases internals
01:11:07
33
Homework
00:27
34
Memory leak - because of no GCs
31:30
35
Memory leak - because of fragmentation
31:20
36
Memory leak - because of roots
58:59
37
Mid-life crisis and Nepotism
30:34
38
Homework
00:11
39
Andrey Akinshin
01:23:13
40
Christophe Nasarre
01:10:55
41
Konrad Kokosa - live Q&A
01:06:37
42
Measuring and self-measuring
01:05:09
43
Reducing allocations - hidden allocations
42:10
44
Reducing allocations - pooling
26:19
45
Reducing allocations - structs
52:45
46
Reducing allocations - strings
01:10:17
47
Homework
00:30
48
Finalization
53:46
49
Disposable objects
29:44
50
IoC containers
12:35
51
Weak references
23:37
52
Homework
00:12
53
Managed pointers
59:20
54
Span<T> and Memory<T>
01:41:49
55
Unsafe class
20:48
56
Pipelines
17:03
57
Homework
00:21
58
Hardware - memory, cache, CPU
35:29
59
Object layout vs cache
26:01
60
Access patterns
40:49
61
Homework
00:13
62
Pinning
29:01
63
Off the heap
09:19
64
Function pointers
11:20
65
Homework
00:09
Unlock unlimited learning

Get instant access to all 64 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Books

Read Book .NET Memory Expert

#TitleTypeOpen
1M01L01Introduction PDF
2M01L02Runtime PDF
3M01L03Homework PDF
4M01L03HomeworkSolutions PDF
5M02L01ValueVsReferenceType PDF
6M02L02StackVsHeap PDF
7M02L03null PDF
8M02L04ArrayVsList PDF
9M02L05Homework PDF
10M03L01AutomaticMemory PDF
11M03L02PausesThroughpu PDF
12M03L03PerformanceGoal PDF
13M03L04Homework PDF
14M04L01GCinNET PDF
15M04L02GCModes PDF
16M04L03Homework PDF
17M05L01ToolsIntro PDF
18M05L02ToolsEvents PDF
19M05L03ToolsETW PDF
20M05L04ToolsLTTng PDF
21M05L05ToolsEventPipes PDF
22M05L06Homework PDF
23M05L06HomeworkSolutions PDF
24M06L01ToolsCounters PDF
25M06L02ToolsDumps PDF
26M06L03ToolsProfilersAPMs PDF
27M06L04ToolsCloudContainers PDF
28M06L05Homework PDF
29M06L05HomeworkSolutions PDF
30M07L01GenerationsAndHeaps PDF
31M07L02Roots PDF
32M07L03Homework PDF
33M07L03HomeworkSolutions PDF
34M08L01OperatingSystem PDF
35M08L02Paritioning PDF
36M08L03Phases PDF
37M08L04Homework PDF
38M08L04HomeworkSolutions PDF
39M09L01MemoryLeakNoGCs PDF
40sM09L02MemoryLeakFragmentation PDF
41M09L03MemoryLeakRoots PDF
42M09L04MidLifeCrisisAndNepotism PDF
43M09L05Homework PDF
44M09L06 PDF
45M09L07Dotnetos_NETCoreTroubleshootingSlides PDF
46M10L01Allocations PDF
47M10L02ReducingHidden PDF
48M10L03ReducingPooling PDF
49M10L04ReducingStructs PDF
50M10L05ReducingStrings PDF
51M10L06Homework PDF
52M11L01Finalization PDF
53M11L02DisposableObjects PDF
54M11L03IoCContainers PDF
55M11L04WeakReferences PDF
56M11L05HomeworkInstructions PDF
57M12L01ManagedPointers PDF
58M12L02SpanMemory PDF
59M12L03Unsafe PDF
60M12L04Pipellines PDF
61M12L05Homework PDF
62M13L01Hardware PDF
63M13L02ObjectLayoutVsCache PDF
64M13L03AccessPatterns PDF
65M13L04HomeworkInstructions PDF
66M14L01Pinning PDF
67M14L02OffTheHeap PDF
68M14L03FunctionPointers PDF
69M14L04HomeworkInstructions PDF

Related courses

Frequently asked questions

What are the prerequisites for enrolling in this course?
Prospective students should have a foundational understanding of .NET and C# programming before enrolling. Familiarity with .NET runtime concepts and basic memory management will be beneficial, as the course delves into advanced topics like Span<T> and Data-Oriented Design.
What kind of projects or exercises will I work on during the course?
The course includes hands-on exercises and practical assignments at the end of each module. These activities help students reinforce learning and gain proficiency in using tools like PerfView for memory analysis and writing efficient C# code tailored for performance.
Who is the target audience for this course?
This course is designed for software developers and engineers who work with .NET applications and want to enhance their skills in memory management. It is particularly useful for those looking to improve application performance and prevent memory-related issues in large-scale projects.
How does this course compare in depth and scope to other memory management courses?
The course provides a comprehensive exploration of .NET memory management, starting from foundational concepts like value and reference types to advanced topics such as Span<T> and native memory handling. It also covers performance analysis with tools like PerfView, making it suitable for developers seeking an in-depth understanding of memory optimization in .NET.
What specific tools and platforms will I learn to use?
Participants will gain proficiency in using PerfView for in-depth memory analysis and learn best practices in C# programming for performance optimization. The course also covers Event Tracing for Windows (ETW) and Linux Trace Toolkit Next Generation (LTTng) for diagnostic purposes.
What topics are not covered in this course?
The course focuses specifically on memory management within the .NET framework and does not cover unrelated programming languages or non-memory-related performance optimization techniques. It also does not delve into user interface design or network programming.
What is the expected time commitment to complete the course?
The course spans 14 weeks and includes 65 lessons, alongside practical assignments and exercises. Students should expect to dedicate several hours per week to engaging with the material, completing assignments, and participating in live Q&A sessions.