11-13 March 2020, London

.NET Memory Workshop

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

.NET Core 2.x/3.x | Windows & Linux | cloud & on-premise

Trainer: Konrad Kokosa

Training

Programming

Learn how to write efficient code, taking into account Garbage Collector's various caveats that you may not even know about. After this training, you'll start programming much more consciously, also being not feared of more advanced techniques.
For example, do you know that the order of the fields in objects can affect code performance? Or, are you aware of various hidden allocation sources?

Theory

Find out how memory management works underneath. This knowledge not only broadens your horizons, but also gives the ability to better understand everything you come across in the future on memory management.
For example, can you comprehensively compare GCs from different ecosystems? Do you understand well the announced changes in CLR in this area?

Diagnostics

Learn how to diagnose and monitor your applications, including on cloud environments. After acquiring such knowledge, no problems will be terrible to you, not even "in production". Solving problems will be only a matter of time!
For example, do you know how to diagnose memory leaks or high CPU usage by GC, non-invasively?

What's included?

When participating in my training you receive:
  • a huge amount of knowledge , both practical and theoretical
  • my over 1000-pages book Pro .NET Memory Management, with a special dedication :)
  • two printed .NET Memory Management posters
  • a pendrive with all lecture materials
  • a coupon for my new e-book .NET GC FAQ (in writing)
  • dinner and coffee service
After training, your confidence in the subject of memory management will multiplicate!

Agenda

All topics are presented in the practical context, like ASP.NET Core or WPF application development, including various deployment scenarios (on-premise/cloud, containers, Windows/Linux).
Basic concepts
  • manual and automated memory management
  • operating system, virtual memory and .NET process
Memory partitioning
  • generations - what is healthy state?
  • Small and Large Object Heap - what should we know?
  • segments - should we care?
Allocations
  • how the allocation works in SOH and LOH - is it really cheap?
  • most common allocation sources and how to avoid them
  • stackalloc - know your super cheap allocator
Garbage collection
  • how it works - Mark, Plan, Sweep and Compact phases
  • OutOfMemoryException - when, why and how to diagnose?
  • memory leaks!
  • Server vs Workstation modes - which one to choose?
  • Background vs Non-concurrent modes - which one to choose?
  • controlling GC from code
Object lifetime
  • explicit cleanup - IDisposable interface and "Disposable pattern"
  • implicit cleanup - finalization
  • weak references
Advanced topics
  • using struct - why?
    • ref structs - special case of structures
  • Span<T> and Memory<T> - our new performance friends
  • Unsafe class and its powerful capabilities
  • Channels - new thing in .NET
Data-oriented design
  • designing applications for an efficient memory access
  • tactical methods (local)
  • strategical methods (global)
Dessert
  • ClrMD library - for powerful diagnostics
  • TraceEvent and event pipes - for powerful monitoring

Time and venue

11-13 March 2020

WeWork Office Space

1 St Katharine's Way

London E1W 1UN

Registration

£1797 + VAT

£1500 + VAT

Promotional price until January 31!
Promo ends in:
Days
Hours
Minutes
Seconds

Trainer

Konrad Kokosa

Author of the Pro .NET Memory Management book. 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 and diagnostics. Microsoft MVP in the Visual Studio and Development Tools category. Co-founder of https://dotnetos.org initiative.

FAQ

Is the level basic or advanced?
You should already know C# and feel rather comfortable with it. However, you don't need to know much about the GC itself. We start from scratch and reach advanced topics so everyone will feel at ease. If you feel really advanced, I am more than willing to provide you with additional knowledge "in the meantime".
Do you need to have your own laptop?
Yes, you do all the exercises on your equipment. Two weeks before the training participants receive instructions on what programs are required (including Windows 10) so that they have time to install everything.
What language are the classes held in?
The whole workshop is conducted in English.
Will there be other dates?
It will be decided by success of this edition. I don't have such plans at the moment.
How to prepare?
Good intentions and a fresh mind (remember to sleep well!) will be just enough!
Are there group tickets?
Contact me, we will think!
If you have any additional questions, please contact me.
. All rights reserved to Gritstep.