Summary
In this chapter, we’ve gathered together the entire set of instruments required for optimal code performance with C++. You learned techniques on many different system and software levels, so it’s understandable if you want to take a breather now. It is true that it would be good to spend more time on some of what we covered, for example, branch predictions and cache friendliness, or to implement more algorithms through condition variables and memory order. We strongly encourage you to use this chapter as a step in the direction of system improvements and more efficient work.
The next chapter is dedicated to one more significant improvement in C++’s features – coroutines. You will see that they are much lighter and, for some of the mechanisms discussed here, such as event waiting, they are much more preferable.