Я думаю, вы, возможно, слишком оптимизировали свой вопрос. Вы пытаетесь решить, с чего начать, или пытаетесь решить, стоит ли выполнять некоторые оптимизации, а другие - нет? Я хотел бы предположить, что у всех существующих методов есть место и они полезны в зависимости от кода, с которым они сталкиваются. Если вы решаете, что делать первым, выберите тот, который вы можете сделать, и сделайте это. Выберите низко висящий фрукт. Сделайте несколько побед в своем заднем кармане, прежде чем вы решите сложный, споткнитесь и расстроитесь. Я бы предположил, что настоящая хитрость заключается в том, что все оптимизации там работают и работают, но придумали способ решить, какие из них создают что-то лучше для конкретной программы, а какие мешают и делают вещи хуже.