Предварительно скомпилированные заголовки способ быстрее, как известно, по крайней мере, с 1988 года.
Обычная причина, по которой компилятор C или C ++ занимает много времени, заключается в том, что он должен #include, preprocess, а затем lex gazillions токенов.
В качестве упражнения вы можете выяснить, сколько времени требуется, чтобы просто запустить cpp над типичной коллекцией заголовочных файлов - а затем измерить, сколько времени потребуется, чтобы преобразовать вывод.
gcc -O использует очень эффективную, но несколько медленную технику оптимизации, разработанную Крисом Фрейзером и Джеком Дэвидсоном. Большинство других оптимизаторов могут работать медленно, потому что они требуют многократных итераций для довольно больших структур данных.