o2优化是什么

O2优化实际上是Optimize,2是优化等级。除了O2优化还有O3优化,这是更高等级的优化;还有Ofast、Os等等多种优化等级,对于有些算法题,使用暴力算法+O2优化是可以正常AC的;但是注意并不是所有O2优化都是正优化,有的会是负优化

[gcc官方关于O2优化的说明]:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

但是实际应用中STL编译的时候,我们会开O2优化,开完之后其实速度跟数组模拟的队列差不多快
在算法竞赛中,比赛方一般不会开O2优化,这种情况下STL的栈队列要比数组模拟的栈队列慢一倍左右

O2优化会尝试更多的寄存器级的优化以及指令级的优化,它会在编译期间占用更多的内存和编译时间。 Gcc将执行几乎所有的不包含时间和空间折中的优化。 当设置O2选项时,编译器并不进行循环打开loop unrolling以及函数内联。 与O1比较而言,O2优化增加了编译时间的基础上,提高了生成代码的执行效率。


O2优化的知识点还是非常重要的!!!

你可能感兴趣的:(程序,经验分享)