Do you want your .NET code to have the absolute best performance it can? This book demystifies the CLR, teaching you how and why to write code with optimum performance. Learn critical lessons from a person who helped design and build one of the largest high-performance .NET systems in the world.
This book does not just teach you how the CLR works—it teaches you exactly what you need to do now to obtain the best performance today. It will expertly guide you through the nuts and bolts of extreme performance optimization in .NET, complete with in-depth examinations of CLR functionality, free tool recommendations and tutorials, useful anecdotes, and step-by-step guides to measure and improve performance.
Among the topics you will learn are how to:
-Choose what to measure and why -Use many amazing tools, freely available, to solve problems quickly -Understand the .NET garbage collector and its effect on your application -Use effective coding patterns that lead to optimal garbage collection performance -Diagnose common GC-related issues -Reduce costs of JITting -Use multiple threads sanely and effectively, avoiding synchronization problems -Know which .NET features and APIs to use and which to avoid -Use code generation to avoid performance problems -Measure everything and expose hidden performance issues -Instrument your program with performance counters and ETW events -Use the latest and greatest .NET features -Ensure your code can run on mobile devices without problems -Build a performance-minded team
Ben Watson has been a software engineer at Microsoft since 2008. On the Bing platform team, he has built one of the world’s leading .NET-based, high-performance server applications, handling high-volume, low-latency requests across tens of thousands of machines for millions of customers. In his spare time, he enjoys geocaching, books of all kinds, classical music, and spending time with his wife and children. He is the author of the books Writing High-Performance .NET Code and C# 4.0 How-To.
Great book with lots of good advice on how to get the most performance out of your .NET application. Usually performance isn't the first thing I'm thinking about for applications I write. But now when I write code I will definitely think about the performance considerations for the code I write. Although normally performance isn't that big of a problem since my applications don't need to serve hundreds of thousands of customers.
If considering the book as a collection of best performance-related practices - it is pretty good. You cannot go too wrong using its advice.
On the other hand, if considering it as a book with non-trivial insights - TBH, given the author's access to MS teams, I expected a bit more. Chapter 2 on GC is pretty good (kudos!) but the rest is not exactly inspiring. Also benchmarks are too few and far between (and counting asm instructions is not a substitute for benchmarks on modern CPUs where single instruction can get anywhere between less-than-1 and 100+ cycles).