by Chris Farrell and Nick Harrison
As well-engineered as the .NET framework is, it’s not perfect, and it doesn’t always get memory management right. To write truly fantastic software, you need to understand how .NET memory management actually works. This book will take you from the very basics of memory management, all the way to how the OS handles its resources, and will help you write the best code you can.
The .NET framework is a triumph of software engineering – a complex edifice of interlocking parts, so it’s no wonder concrete information is a little hard to come by. For all that the framework is very good at what it does, it is not infallible, and a deeper understanding of how it works can only improve the quality of the code written by those in the know.
This book starts with an introduction to the core concepts of .NET memory management and garbage collection, and then quickly layers on additional details and intricacies. Once you’re up to speed, you can dive into the guided troubleshooting tour, and tips for engineering your application to maximise performance. And to finish off, take a look at some more sophisticated considerations, and even a peek inside the Windows memory model.
Chris and Nick, with decades of development experience between them, and methodical approach, provide a clear, well-lit path into what has previously been misty and half-seen territory. There’s much, much more they could have written, but we only have one book to fill, so consider this instead to be your first solid stepping stone.
Chapter 1: Prelude
Chapter 2: The Simple Heap Model
Chapter 3: A Little More Detail
Chapter 4: Common Memory Problems
Chapter 5: Application-Specific Problems
Chapter 6: A Few More Advanced Topics
Chapter 7: The Windows Memory Model
Chris Farrell has over 20 years of development experience, and has spent the last seven as a .NET consultant and trainer. For the last three years, his focus has shifted to application performance assurance, and the use of tools to identify performance problems in complex .NET applications. Working with many of the world’s largest corporations, he has helped development teams find and fix performance, stability, and scalability problems with an emphasis on training developers to find problems independently in the future.
In 2009, after working at Compuware as a consultant for two years, Chris joined the independent consultancy CodeAssure UK as their lead performance consultant.
Chris has also branched out into mobile app development and consultancy with Xivuh Ltd focusing on Apple’s iOS on iPhone and iPad.
When not analyzing underperforming websites or writing iPhone apps, Chris loves to spend time with his wife and young son swimming, bike riding, and playing tennis. His dream is to encourage his son to play tennis to a standard good enough to reach a Wimbledon final, although a semi would be fine.
Nick Harrison is a software architect who has worked with the .NET framework since its original release. His interests are varied and span much of the breadth of the framework itself. On most days, you can find him trying to find a balance between his technical curiosity and his family/personal life.