Webinar recording: Exploring .NET’s memory management

The recording of our recent webinar with Maarten Balliauw, Exploring .NET’s memory management, is now available:

We’ll take a trip down memory lane and look into how .NET memory management works. We’ll start off with the .NET Garbage Collector (GC) is really cool and look at how it helps providing our applications with virtually unlimited memory, so we can focus on writing code instead of manually freeing up memory. But how does .NET manage that memory? What are hidden allocations? Are strings evil? It still matters to understand when and where memory is allocated. In this talk, we’ll go over the base concepts of .NET memory management and explore how .NET helps us and how we can help .NET – making our apps better. Expect profiling using dotMemory, Intermediate Language (IL), and using ClrMD to mimic some inspections dotMemory provides.

All demos are available on GitHub and come with interactive walkthroughs, mostly. If you have dotMemory installed, you can investigate the results of each demo on your own!

Slides are on SlideShare, and a detailed blog series on the topic is available as well:

Thank you for attending! Download dotMemory now and give it a try!

This entry was posted in How-To's and tagged , , , . Bookmark the permalink.

2 Responses to Webinar recording: Exploring .NET’s memory management

  1. Mike-EEE says:

    VS2017 crashes during the demo and you don’t take the opportunity to mention — or better yet switch to! — Rider? Shame shame. 😉 Great session, otherwise!

    Also, if you are developing with ReSharper, the Heap Allocations Viewer Plugin is an absolute must (and should also be baked into R# by default IMO):
    https://github.com/controlflow/resharper-heapview

    It covers all the gotchas covered in the video and will seriously up your development game.

    • Maarten Balliauw says:

      HeapView is indeed fantastic :-) And we’ll give Rider some attention, no worries. Thanks for the comments!

Leave a Reply

Your email address will not be published. Required fields are marked *