Quite often you hear people are saying: “You don't need to worry about the memory in C#!” or “You can't have significant memory problems in C#!” But the truth is actually opposite.
Whenever you make a long running service, or application which should process large amount of the data, memory management is a real concern!
This lecture tries to give insight how .NET's CLR handles memory and what we should know regarding it.
Following topics will be covered:
- how CLR's garbage collection works in depth (including object finalization)
- do we need destructors and when,
- what's the proper implementation of disposable pattern,
- when to use structures,
- best practices regarding memory management while writing code,
- and how to perform memory profiling.