In this appendix, you learned how to spot the different types of bottlenecks that may occur in your code, how to pinpoint them one by one, and how to quickly amend them.
You also learned how to avoid performance bottlenecks in the first place by avoiding some common pitfalls of software and systems architecture.
Finally, you were introduced to load testing, and some of the factors that must be considered when it is carried out on your own projects.