discussions on software development
#95 Ben Watson, High Performance .NET
Summary
Ben Watson, software engineer at Microsoft working on Bing and author of Writing High Performance .NET Code talks to me about his book and how to improve your code.
Details
Who he is, what he does, working on Bing lead to the book, Bing is probably the biggest C# app in the world. Why worry about performance, pay for play, serverless; sometimes more machines are the best solution. Where to start with the CLR, the garbage collector, JIT, be careful of enum flags. More on GC, using generations to improve efficiency, aim for very short lived or very long-lived memory, memory efficiency is as important as CPU efficiency. What about the network, async await all the way down, Ben likes TPL, "immutability is key". LINQ hides allocations, closures delegates. Be careful with Func and Actions, delegates cause allocations. Spans. Concurrent collections. Just in Time, small methods compile faster, Bing loads thousands of dlls. Readability and maintainability vs performance. for vs foreach.