.NET Memory Expert

.NET Framework & .NET Core & .NET 5/6 | Windows & Linux | cloud & on-premise
Everything you need to know about the GC and memory in .NET

Price:

429€ | 499$ | 1899zł

(+ VAT if applies)

Sign up to not forget and to receive messages about the upcoming sales and other interesting GC-related stuff.


Next upcoming sales window is February 2022

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 13 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!

Price:

429€ | 499$ | 1899zł

(+ VAT if applies)

Sign up to not forget and to receive messages about the upcoming sales and other interesting GC-related stuff.


Next upcoming sales window is February 2022

Course agenda

1

.NET runtime & types basics

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

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
3

Memory management fundamentals

  1. Automatic memory management
  2. Pauses/throughput/latency/aggressiveness
  3. Your performance goal?
  4. Homework
4

.NET GC fundamentals

  1. GC in .NET - overview, triggers, latency modes
  2. GC modes - Server vs Workstation, Background vs Non-concurrent
  3. Homework
5

Diagnostic tools

  1. Events - ETW, LTTng, EventPipes
  2. Counters
  3. Dumps
  4. .NET CLI Diagnostic Tools, PerfView
  5. Dockerized app
  6. Cloud app
  7. Homework
6

Roots and generations

  1. Generations and other heaps - "healthy" state, reasons and criteria, fragmentation
  2. Roots - local variables, statics, AssemblyLoadContext
  3. Homework
7

The GC internals

  1. Operating system cooperation and program size - virtual/physical memory, process memory layout
  2. Essential internals of the GC
  3. Observing and measuring GC internals
  4. Homework
8

Typical problems

  1. Memory leak - because of no GCs
  2. Memory leak - because of fragmentation
  3. Memory leak - because of roots
  4. Nepotism
  5. Homework
9

Allocations under control

  1. Measuring and self-measuring
  2. Reducing allocations - closures, LINQ, lambdas, ...
  3. Reducing allocations - buffers & pooling
  4. Reducing allocations - structs
  5. Reducing allocations - low-level techniques, zero alloc code
  6. Homework
10

Lifetime management

  1. Debug vs Release vs JIT Tiers - influence on liveness
  2. Finalization - problems, resurrection
  3. IDisposable - Disposable (anti)pattern
  4. Weak references - Weak event pattern
  5. Homework
11

Advanced topics and APIs

  1. Managed pointer - ref params, locals, return, ref structs
  2. Span<T> and Memory<T>
  3. Unsafe class
  4. Pipelines
  5. Homework
12

Data Oriented Design

  1. Hardware - memory, cache, CPU, ...
  2. Object layout vs cache line, frugal objects
  3. Random vs sequential access
  4. SOA vs AOS
  5. Homework
13

Interoperability

  1. Pinning - fixed vs handles, Pinned Object Heap
  2. Memory mapped files
  3. Native allocations - moving off the Heap
  4. Function pointers, marshalling, SuppressGCTransition attribute
  5. Homework

What do I get?

🔍 Access to 13-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.

Price:

429€ | 499$ | 1899zł

(+ VAT if applies)

Sign up to not forget and to receive messages about the upcoming sales and other interesting GC-related stuff.


Next upcoming sales window is February 2022

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.

Price:

429€ | 499$ | 1899zł

(+ VAT if applies)

Sign up to not forget and to receive messages about the upcoming sales and other interesting GC-related stuff.


Next upcoming sales window is February 2022

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 starts in autumn 2021! Every week you will start to receive an access to the next week-unit. New material will be added every week to not overwhelm you and to allow all the group to get through it at the same 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 [email protected], and we will return you 100% value.

🔍 Will I receive all the course material at once?

No. We add new materials each week to not overwhelm you and to keep the group pace at the same tempo.

🔍 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: [email protected]

Share!

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!