In this chapter, we covered several optimization techniques. Some of them are meant to provide big boosts on speed, and/or save memory. Some of them are just meant to provide minor speed improvements. Most of this chapter covered Python-specific techniques, but some of them can be translated into other languages as well.
In the next chapter, we will go over optimization techniques. In particular, we'll cover multi-threading and multiprocessing, and you'll learn when to apply each one.