关于Ox(O0、O1和O2)优化

文章目录

  • 心得所闻
  • 思路来源
  • 优化说明
  • 开启方法

心得所闻

  • 似乎是NOIP可以用,NOI不能用的一个东西
  • 天天听说-O2优化,吸口氧就过了,原来是这么个东西……

思路来源

  • C++手动开启O2优化

优化说明

Ox(x取123)主要是对代码大小的优化,我们基本不用做更多的关心。

通常各种优化都会打乱程序的结构,让调试工作变得无从着手。

并且会打乱执行顺序,依赖内存操作顺序的程序需要做相关处理才能确保程序的正确性。

  1. O0: 不做任何优化,这是默认的编译选项。

  2. O和O1: 对程序做部分编译优化,对于大函数,优化编译占用稍微多的时间和相当大的内存。使用本项优化,编译器会尝试减小生成代码的尺寸,以及缩短执行时间,但并不执行需要占用大量编译时间的优化。

  3. O2优化:能使程序的编译效率大大提升,从而减少程序的运行时间,达到优化的效果。

开启方法

#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")

你可能感兴趣的:(ACM,算法分析与设计,c++,算法,c语言,内存优化,acm竞赛)