Разница между параметрами компилятора -O1 и -O2 заключается в уровне оптимизации кода. 1
Параметр -O1 — это наиболее простой уровень оптимизации. 1 Компилятор пытается сгенерировать быстрый код, занимающий меньше объёма, не тратя много времени на компиляцию. 1
Параметр -O2 — шаг вперёд от -O1, рекомендуемый уровень оптимизации. 1 Он активирует несколько дополнительных флагов вдобавок к флагам, активированным -O1. 1 С параметром -O2 компилятор пытается увеличить производительность кода без нарушения размера, не тратя много времени на компиляцию. 1
Таким образом, цель параметра -O1 — минимизировать размер кода, а -O2 — максимизировать скорость. 4 При этом параметры -O1 и -O2 являются взаимоисключающими. 4