.NET Memory Expert

.NET Framework & .NET Core & .NET 5/6 | Windows & Linux | cloud & on-premise

online course

Everything you need to know about the GC and memory in .NET


429€ | 499$ | 10590 Kč | 1899 zł

(+ VAT if applies)

Time left until the sale closing:


.NET Memory Expert course in numbers:


0 returns


14 homework tasks


which is
42 hours of material


which is an average of
20 slides per lesson

Course description

Do you know whether your C# code is memory efficient? Could you make your application faster and cheaper to host? Do you know how to write efficient code, taking into account Garbage Collector's various caveats that you may not even know about? In this course we cover those topics to make you just a better programmer. We cover here a lot!. From the basics about value and reference types, through the knowledge about configuring .NET GC, up to super interesting, advanced topics like Span<T> and its usage to utilize native memory in a Data-Oriented Design way.

Well, it is partially true that .NET memory management is automatic and you don't need to think about it. Until... you need. Maybe you were supposed to analyze the strange memory growth of .NET application. Or maybe you are even not aware that you waste tons of CPU power because of inefficient memory handling. Do you know how to measure that?

We prepared .NET Memory Expert online course to help you gain all that knowledge. It is 14 solid weeks of learning. We will show you how to use powerful tools like PerfView in thoroughly prepared .NET scenarios and also how to program in C# in a memory-aware, efficient way. To practice possessed knowledge, every module has also a prepared homework. To deepen your knowledge we've invited two Mentors who will prepare two additional, invaluable lessons. As participant you will have an opportunity to attend LIVE Q&A meeting with an author during which only your imagination limits your questions to him!


429€ | 499$ | 10590 Kč | 1899 zł

(+ VAT if applies)

Time left until the sale closing:


Course agenda


.NET runtime

  1. Introduction
  2. .NET runtime - IL, JIT, assembler
  3. Homework

Types basics

  1. Value vs reference type - layout, passing by value and reference
  2. Stack vs heap
  3. null/NullReferenceException
  4. Array/list of classes/structs
  5. Homework

Memory management fundamentals

  1. Automatic memory management
  2. Pauses/throughput/latency/aggressiveness
  3. Your performance goal? Don't guess, measure
  4. Homework

.NET GC fundamentals

  1. GC in .NET
  2. GC modes, latency modes and other settings
  3. Homework

Diagnostic tools

  1. Introduction
  2. Events
  3. Event Tracing for Windows
  4. Linux Trace Toolkit Next Generation (LTTng)
  5. EventPipes & CLI Diagnostic Tools
  6. Homework

Diagnostic tools - part II

  1. Counters
  2. Dumps
  3. Profilers & Application Performance Monitoring
  4. Cloud & containers
  5. Homework

Roots, generations and memory leaks

  1. Generations and heaps
  2. Roots
  3. Homework

The (necessary) GC internals

  1. Operating system cooperation
  2. The GC partitioning internals
  3. The GC phases internals
  4. Homework

Typical problems

  1. Memory leaks - no GC
  2. Memory leaks - fragmentation
  3. Memory leaks - roots
  4. Mid-life crisis and Nepotism
  5. Homework

Allocations under control

  1. Measuring and self-measuring
  2. Reducing - hidden allocations
  3. Reducing - pooling
  4. Reducing - structs
  5. Reducing - strings
  6. Homework

Lifetime management

  1. Finalization
  2. IDisposable
  3. IoC Containers
  4. Weak references
  5. Homework

Advanced topics and APIs

  1. Managed pointers
  2. Span<T> and Memory<T>
  3. Unsafe class
  4. Pipelines
  5. Homework

Data Oriented Design

  1. Hardware - memory, cache, CPU
  2. Object layout vs cache
  3. Memory acces patterns (including SOA vs AOS)
  4. Homework


  1. Pinning
  2. Off the heap - MemoryMappedFiles, native allocations
  3. Function pointers
  4. Homework

Bonus - Mentors

  1. Andrey Akinshin - Statistical analysis of memory metrics
  2. Christophe Nasarre - Memory troubleshooting

What do I get?

🔍 Access to 14-weeks .NET Memory Expert on-line course - Access to full .NET Memory course material

🔍 Q&A session with Author - LIVE session with Konrad, author of the course, will give you a great opportunity to clarify any doubts arising during the course.

🔍 Lessons with Mentors - 2x additional lessons with international Mentors of that program, who are world-class experts on the field of performance. Sessions will be recorded and shared with you on the platform.

🔍 Access to the course platform - The access to the platform as well as to our dedicated discussion page, which allows you to contact the instructor and other course participants.

🔍 Access to the repository - You receive the access to repository that includes code examples.


429€ | 499$ | 10590 Kč | 1899 zł

(+ VAT if applies)

Time left until the sale closing:


Course authors

Konrad Kokosa

Dotnetos co-founder, Microsoft MVP, author, speaker

Author of Pro .NET Memory Management book (⭐⭐⭐⭐⭐ rating on Amazon). Programming for over a dozen years, solving performance problems and architectural puzzles in the .NET world, speeding up web applications. Independent consultant, blogger, speaker and fan of Twitter. He also shares his passion as a trainer in the area of .NET, especially about application performance, memory and diagnostics. Microsoft MVP in the Visual Studio and Development Tools category. Co-founder of a great Dotnetos initiative sharing knowledge and providing premium .NET content.

Course mentors

Andrey Akinshin

JetBrains Rider performance lead, BenchmarkDotNet maintainer, "Pro .NET Benchmarking" author

Andrey Akinshin is a software developer, an author of blog posts and papers about mathematics and programming, a frequent conference speaker. He is the project lead of the well-known BenchmarkDotNet and perfolizer. The author of 'Pro .NET Benchmarking' book. An ex Microsoft .NET MVP, a silver medalist of ACM ICPC. Andrey is a Ph.D. in computer science.

Christophe Nasarre

Microsoft MVP, developer and speaker

Developing and shipping software on Microsoft stacks for 30 years. Technical reviewer for many publishing companies since 1996 on books such as 'CLR via C#' and the last editions of 'Windows Internals'. He is providing tools and insights on .NET and troubleshooting via his awesome diagnostics blog posts and his open source projects: you might be surprised how much code you could reuse.


429€ | 499$ | 10590 Kč | 1899 zł

(+ VAT if applies)

Time left until the sale closing:


Questions and answers

🔍 Which programming language will be used in examples?

All the examples as well as all our work will be done in C#.

🔍 Which version of .NET and operating system will be used in samples and homeworks?

We will work on .NET 5, showing differences with .NET Framework and/or .NET Core when needed. We will cover both Linux and Windows.

🔍 When does the course begin and for how long does it last?

The course is now available and the sale is unlimited in time.

🔍 What is the format of that course?

It is a video course. Recordings are uploaded to the platform. After signing in with your login and password, you have an access to your account.

🔍 How long will I have the access to the course?

You will receive life-long access to that edition of the course, including its updates.

🔍 What if I would not be satisfied with the course?

If you watch less than 30% of the course and decide that the course is not for you, you will receive a refund. You have 30 days to decide. Just write to contact[at]dotnetos.org, and we will return you 100% value.

🔍 Will I receive all the course material at once?

Yes. All material is available immediately. We recommend watching one module per week to not overwhelm you.

🔍 Will I receive an invoice?

Yes, you will receive a VAT invoice with your purchase, if it applies. It will be sent to you within few days to the e-mail address provided during the order.

🔍 How can I pay for that course?

Payment is done with the use of our on-line shop. Each type of payment supported by it is ok for us.

🔍 Can I pay later, on installments, etc.?

Unfortunately, no.

🔍 How many people can access one course account?

The access is given to one person, using an address provided during the purchase. If you are interested in buying more accesses please add more participants in the form during the purchase.

🔍 What if I have a problem with something or something is unclear?

Write to us with that e-mail address: contact[at]dotnetos.org.


If you think that .NET Memory Expert is a nice dose of knowledge, share it with friends. Just use one of the buttons below!
Thank you!