You can either tackle a code performance when it happens (i.e., fight the fires) or you can create a plan to tackle it.
You will never get away from fighting the fire approach, a scenario, a use case, will always pop up and make you stop and think – “huh, I never thought about that”.
But you can look to the other 90% of scenarios that you know of and work through the scenarios that could be better now so that hopefully when those performance fires flare up with a customer, they are not as bad as they could have been.