6 优化编译

GCC是一个优化编译器。它提供一个宽范围的选项来提高运行速度或者减小生成可执行文件的大小。

优化是一个复杂的过程。源代码中每一个高水平命令通常会有很多可能结合被用于实现最后结果的机器指令。编译器必须考虑这些可能并在他们中间进行选择。

通常不同的代码用于不同的处理器,因为他们使用了不可兼容的汇编和机器语言。每种类型的处理器也有自己的特性--一些CPUs提供了大量的寄存器用于保存中间计算结果,但是其他CPU必须从内存中存储和加载中间计算结果。适当的代码必须为每种情况生成可执行文件。

更甚至不同的指令和排序顺序会影响程序的速度。当使用优化选项编译程序时GCC需要考虑所有的情况并尽力为给定系统生成最快的可执行文件。