.NET Tools
Essential productivity kit for .NET and game developers
.NET Systems Programming Learned the Hard Way – Webinar Recording
The recording for .NET Systems Programming Learned the Hard Way, with CEO and Petabridge founder Aaron Stannard, is now available on JetBrainsTV.
What is a thread quantum, and why is it different on Windows Desktop and Windows Server? What’s the difference between a blocking call and a blocking flow? Why did our remoting benchmarks suddenly drop when we moved to .NET 6? When should I try to write lock-free code? What does the volatile
keyword mean?
Welcome to the types of questions my team and I are asked, or ask ourselves, on a regular basis – we’re the makers of Akka.NET, a high-performance distributed actor system library and these are the sorts of low-level questions we need to answer in order to build great experiences for our own users.
In this talk, we’ll learn about .NET systems programming, the low-level components we hope we can take for granted but sometimes can’t. In particular:
- The
ThreadPool
and how work queues operate in practice. - Synchronization mechanisms – including
lock
-less ones. - Memory management,
Span<T>
, and garbage collection. await
,Task
, and the synchronization contexts; and- Crossing user-code and system boundaries in areas such as sockets.
This talk will help .NET developers understand why their code works the way it does and what to do in scenarios that demand high performance.
Agenda
- 00:00 Introduction
- 02:00 Aaron Stannard
- 03:06 About Me (Aaron)
- 05:55 Garbage Collection
- 23:53 Memory Allocations
- 41:09 Threads, Memory, Synchronization, and Pain
- 55:34 Learn More
- 1:00:43 Questions and Answers
- 1:16:46 Outro
Resources
About the presenter: