Поскольку -O3 подразумевает агрессивное встраивание, а -g подразумевает избегание встраивания, чтобы отладчик мог иметь адреса функций, эти параметры несколько расходятся. Тем не менее, в целом -O3 выигрывает, и, кроме немного большего бинарного кода - и незначительных скоростных эффектов, которые могут возникнуть из-за пейджинга или нелокальности - это не должно иметь большого значения.