今天是2024年11月22日 第47周 星期五
代人,时大变了。
我们生活在大地上,但我们的梦想超越天空。
火車頭 (信息學競賽)
於 2020年8月16日 (日) 22:49 由 RainbowDash(討論 | 貢獻) 所做的修訂
火車頭是一種信息學競賽中使用的,用來提升代碼運行速度的預處理優化。一般在正規的比賽中被禁止,在正式的開發中亦無應用。通常火車頭中包含大量的冗餘優化以及玄學成分
示例
這是一個常見的火車頭 <syntaxhighlight lang = "cpp">
- pragma GCC optimize(3)
- pragma GCC target("avx")
- pragma GCC optimize("Ofast")
- pragma GCC optimize("inline")
- pragma GCC optimize("-fgcse")
- pragma GCC optimize("-fgcse-lm")
- pragma GCC optimize("-fipa-sra")
- pragma GCC optimize("-ftree-pre")
- pragma GCC optimize("-ftree-vrp")
- pragma GCC optimize("-fpeephole2")
- pragma GCC optimize("-ffast-math")
- pragma GCC optimize("-fsched-spec")
- pragma GCC optimize("unroll-loops")
- pragma GCC optimize("-falign-jumps")
- pragma GCC optimize("-falign-loops")
- pragma GCC optimize("-falign-labels")
- pragma GCC optimize("-fdevirtualize")
- pragma GCC optimize("-fcaller-saves")
- pragma GCC optimize("-fcrossjumping")
- pragma GCC optimize("-fthread-jumps")
- pragma GCC optimize("-funroll-loops")
- pragma GCC optimize("-fwhole-program")
- pragma GCC optimize("-freorder-blocks")
- pragma GCC optimize("-fschedule-insns")
- pragma GCC optimize("inline-functions")
- pragma GCC optimize("-ftree-tail-merge")
- pragma GCC optimize("-fschedule-insns2")
- pragma GCC optimize("-fstrict-aliasing")
- pragma GCC optimize("-fstrict-overflow")
- pragma GCC optimize("-falign-functions")
- pragma GCC optimize("-fcse-skip-blocks")
- pragma GCC optimize("-fcse-follow-jumps")
- pragma GCC optimize("-fsched-interblock")
- pragma GCC optimize("-fpartial-inlining")
- pragma GCC optimize("no-stack-protector")
- pragma GCC optimize("-freorder-functions")
- pragma GCC optimize("-findirect-inlining")
- pragma GCC optimize("-fhoist-adjacent-loads")
- pragma GCC optimize("-frerun-cse-after-loop")
- pragma GCC optimize("inline-small-functions")
- pragma GCC optimize("-finline-small-functions")
- pragma GCC optimize("-ftree-switch-conversion")
- pragma GCC optimize("-foptimize-sibling-calls")
- pragma GCC optimize("-fexpensive-optimizations")
- pragma GCC optimize("-funsafe-loop-optimizations")
- pragma GCC optimize("inline-functions-called-once")
- pragma GCC optimize("-fdelete-null-pointer-checks")
- pragma GCC optimize(2)
</syntaxhighlight> (事實上對於此份優化,僅保留前四行即可)