コンパイラ最適化
コンパイラが、コンピュータの仕様に合わせてプログラムの実行速度が速くなるようにしてくれる機能。
#pragma GCC optimize("Ofast","unroll-loops")
#pragma GCC option("arch=native","tune=native")
#pragma GCC target("avx")
コンパイラ最適化の効果
要出典
Ofast
: めちゃくちゃ最適化する。だけど厳格な標準準拠を無視する。例えば浮動小数点の誤差には注意。unroll-loops
: ループを展開する。ループの回数が決まっている場合に有効?arch=native,tune=native
: 実行環境で使える SIMD 命令を使うようにする。avx
: SIMD 命令を使うようにする。例えば 256 bit 単位で行う場合、 int (= 32 bit) なら理想条件で 8 倍くらい高速化する。