Profiling code
Having exhausted the minimum-effort options for improving your code’s performance, it’s time to actually put some work in if you need to go faster. There’s no recipe to follow to write fast code: if there were, we could have taught you that in the previous chapter and there wouldn’t need to be a section on performance now. Of course, speed also isn’t the only performance goal – you might want to reduce memory use or increase the number of simultaneous operations that can be in flight – but programmers often use “performance” as a synonym for “reducing time to completion,” and that’s what you’ll investigate here.
Improving performance is a scientific process: you observe how your code behaves, hypothesize about a potential improvement, make the change, and then observe it again and check that you really did improve things. Good tool support exists for the observation steps in...