Knowledge
Ideas
Good practices
Knowledge
Ideas
Good practices
Chapter 1
Basic Concepts
General theoretical introduction to memory management, with almost no reference to .NET in particular.
Chapter 2
Low-Level Memory Management
Introduction to memory management on the hardware and operating system level.
Chapter 3
Memory Measurements
Solely dedicated to measurements and various tools (among which some are very often used later in the book).
Chapter 4
.NET Fundamentals
Describes relevant internals like .NET type system (including value type versus reference type), string interning or static data.
Chapter 5
Memory Partitioning
How memory is organized in .NET applications, introducing concept of Small and Large Object Heap, generations as well as segments.
Chapter 6
Memory Allocation
Dedicated solely to allocating memory. An important part of this chapter is description of various sources of allocations, in the context of avoiding them.
Chapters 7-10 🔥
Garbage Collection
Introduction to the description of the GC implementation in .NET, including a description of the steps performed, what triggers it, and choosing the generation to be collected.
Chapter 11
GC Flavors
Describing all available GC modes with comprehensive considerations which one to choose.
Chapter 12
Lifetime management
Describing all available GC modes with comprehensive considerations which one to choose.
Chapter 13
Miscellaneous Topics
Explains the topic of managed pointers and goes deeper into structs (including recently added ref structs).
Chapter 14
(Really) Advanced Techniques
Puts a lot of attention to types and techniques gaining more and more popularity recently, like Span
Chapter 15
GC Flavors
Describes various ways how we can control and monitor the GC from code, including GC class API, CLR Hosting or ClrMD library.
Translated the first edition (2018)
Polish, Russian, Chinese
Or...
Wait until the Second Edition!
The planned release date for the book is mid-2024. Sign up for the newsletter if you would like to be kept informed of:
The whole book has been very carefully reviewed by Konrad, Chris and Kevin. There was an update to .NET 8, whereas the first edition was written during the .NET Core 3.1 preview, solely by Konrad. These two extra pairs of eyes allowed us to look at the content of the book in a fresh way. We spent dozens of hours discussing changes to individual chapters. Sometimes debating the meaning of single words (perfectionism!😇)
In addition to the technical changes, we also looked very closely at style, grammatical errors and minor factual errors.
dotnet-trace