GCC编译优化

2021-10-19  本文已影响0人  谭英智

编译优化

如果不指定优化标志,gcc会产生可调试的代码

启用优化后,gcc会改变程序的结构,让代码变小或者运行得更快

-O0

不优化

-O, -O1

在不影响编译速度的情况下,尽量采取一些优化算法降低代码大小和加快代码运行的速度,并启用以下优化选项:

-O2

会牺牲一定的编译速度,除了执行O1的所有编译优化之外,还会采取几乎所有的目标配置支持的优化算法,用来提高目标代码的运行速度

-O3

除了执行O2所有的优化选项之外,一般还会采用很多向量化算法,提高程序的并行度,并利用CPU的流水线和cache来加快运行速度,

这个选项会加大代码的大小,并降低目标代码的执行时间

-Os

目的是尽量减少目标代码的大小,这对存储容量很小的设备尤为重要

-Ofast

除了启用所有O3的优化选项之外,还会针对某些语言启用部分优化

-Og

目的是保留较好的可调试信息的前提下提供合理的优化

GCC常用选项

ref: https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/Optimize-Options.html

上一篇 下一篇

猜你喜欢

热点阅读