gcc -0优化分析

  在现代c编译器中,一个最让人心动的特性是优化。优化是编译器的一部分,它可以检查代码,(或者把编译器生成的代码组合起来),指出未达到最优化的部分,并且重新生成他们,这样使程序更节省空间,表现更完美,gcc也不例外,他拥有强大的并且是可以配置的优化器,对程序进行处理。在gcc中,可以使用其中一个-o选项对代码进行优化,可以为gcc指定不同的优化级别,如果只是简化的使用-o,将使用第一级别的优化(或者-O1),-o和-o1等同,也可以用-O2,-O3代替-O,这些选项决定了gcc的优化级别,数字越高,gcc优化等级越高,高的等级意味着程序更快的运行。

  优化可以带来便捷,但同时也存在着一些危险,首先,使用高级别的优化,编译时间会很长,所以在集中开发时一般不使用优化,第二,一般优化选项如-O3,会增大程序的体积,通常这种变化体积不是很大,但有时候还是需要注意,如果程序需要很大的RAM,当程序运行时,就需要更多的交换空间,它带来的负面影响可能比收益还大,,最后,使用优化选项时,调试会比较困难。

三层优化:

(1):结构相关:当指令在重叠执行过程中,硬件资源满足不了指令重叠的要求,发生资源冲突的结构相关。

(2):数据相关:当一条指令需要用到之前指令的运行结果,而这些指令均在流水线中重叠执行时,就可能引起数据相关

(3):控制相关:当流水线遇到分支指令或其他会改变pc值的指令就会发生控制相关,一旦流水线中出现这种相关,就会影响指令在流水线当中的顺序执行,从而影响流水线的性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值