1. O2,O3
貌似这比在编译命令里写-O2,O3 效果会差很多
但是确实能优化加速
代码:
#pragma GCC optimize("O2")
#pragma GCC optimize("O3")
2. Ofast,no-stack-protector
不知道,好象是把什么——栈の保护去掉了。
经过实验证明这个命令优化效果最好,把我的 1.2S 的 FFT 优化到了 0.4S
可能一寸长,一寸强吧。
代码这么写:
#pragma GCC optimize("Ofast,no-stack-protector")
3. avx
更不知道了。听 boshi 说是优化 cpu 指令用的。
貌似有一次我用了结果程序就爆了
慎用。
代码:
#pragma GCC target("avx")
4. 在洛谷 轻如晨曦 代码中的优化命令
#pragma GCC optimize("Ofast")
#pragma GCC target("sse3","sse2","sse")
#pragma GCC target("avx","sse4","sse4.1","sse4.2","ssse3")
#pragma GCC target("f16c")
#pragma GCC optimize("inline","fast-math","unroll-loops","no-stack-protector")
#pragma GCC diagnostic error "-fwhole-program"
#pragma GCC diagnostic error "-fcse-skip-blocks"
#pragma GCC diagnostic error "-funsafe-loop-optimizations"
#pragma GCC diagnostic error "-std=c++14"
1 条评论
(GCC) C++代码中使用#pragma GCC optimize / #pragma G++ optimize | 高性能架构探索 · 2023年2月12日 4:48 下午
[…] 经过实验证明这个命令优化效果最好,把我的 1.2S 的 FFT 优化到了 0.4S 使用 pragma 命令优化程序: […]