Reviewing what we learned
Let's briefly recap what we covered earlier in this book to serve as an aide-mémoire.
In Chapter 1, Why Performance Is a Feature , we discussed the basic premise of this book and showed you why you need to care about the performance of your software. Then, in Chapter 2, Measuring Performance Bottlenecks, we showed you that the only way you can solve performance problems is to carefully measure your application.
In Chapter 3, Fixing Common Performance Problems, we looked at some of the most frequent performance mistakes and how to fix them. After this, we went a little deeper in Chapter 4, Addressing Network Performance , and dug into the networking layer that underpins all web applications. Then in Chapter 5, Optimizing I/O Performance, we focused on input/output and how this can negatively affect performance.
In Chapter 6, Understanding Code Execution and Asynchronous Operations, we jumped into the intricacies of C# code and looked at how its execution can...