GCC(GNU Compiler Collection)提供了许多编译优化参数,可以帮助提高生成代码的性能。以下是一些常用的GCC优化参数:
-O 系列-O0:不进行优化(默认)。-O1:基本优化,平衡编译时间和性能。-O2:更多优化,提高性能但可能增加编译时间。-O3:进一步优化,进一步提高性能,可能会牺牲一些编译时间和代码大小。-Os:针对代码大小进行优化,减少代码体积。-Ofast-O3的优化,并且放宽一些标准合规性检查,例如忽略浮点异常、使用未定义行为等。-march 和 -mtune-march=native:自动检测当前机器的CPU架构,并生成针对该架构的代码。-mtune=native:只调整CPU特性,不改变生成的指令集。-flto (Link Time Optimization)-funroll-loops-fomit-frame-pointer-finline-functions-fno-builtin-fno-tree-vectorize-fno-tree-loop-vectorize-fno-tree-dse (Dead Store Elimination)-fno-tree-dce (Dead Code Elimination)-fno-tree-slp-vectorize-fno-tree-ssa-fno-tree-ph-fno-tree-pre-fno-tree-ter-fno-tree-vrp-fno-tree-ch-fno-tree-ssa-ccp通过合理组合这些参数,可以在不同场景下获得最佳的性能表现。