神奇的常數優化

2021-08-22 12:18:26 字數 806 閱讀 6618

話說noip不開優化,那我們來看看開優化後會發生什麼

乙個簡單的累加

#include#include//計時看看差別

#includeusing namespace std;

int main()

按理來說,上面的兩種方法差不多(???)

在devc++ 5.7.1中,xp系統(學校機房的那種)

不開任何優化  大約前一種是8500ms+,後一種是4000ms+

開-o1           1300ms+                   600ms+      //優化級別 low

開-o2 以上                                          0                              0       //low以上

怎麼回事呢?

原因是cpu整數加法運算器有多個,

而同乙個時間可以最多運算兩個整數加法,

通過這種方法可以增加流水線吞吐量。

實際上,編譯器會在第二次隱式彙編優化時候做這個優化,

如果你把gcc開到o3以上的優化程度就可以自動在彙編指令層級變成這種形式

源自:oi/acm中有哪些最黑的黑科技? - 知乎

咋開優化?

devc++工具欄-》工具-》編譯選項-》編譯器-》編譯時加入以下命令-》鍵入-o2-》

-》**生成優化-》**生成-》優化級別

noip2017 rp++

神奇的常數優化

話說noip不開優化,那我們來看看開優化後會發生什麼 乙個簡單的累加 include include 計時看看差別 includeusing namespace std intmain 按理來說,上面的兩種方法差不多 在devc 5.7.1中,xp系統 學校機房的那種 不開任何優化 大約前一種是85...

FFT常數優化(共軛優化)

最近閒著無聊研究了下 fft 的常數優化,大概就是各種 3 次變 2or1.5 次之類的,不過沒見過啥題卡這個的吧。關於 fft 可以看這裡 fft ntt。設 x a bi 其中 i 是虛數單位,那麼我們用 bar x 表示 x 的共軛複數,即 bar x a bi 共軛複數有乙個這樣的性質 ov...

矩陣乘法的常數優化

矩陣乘法的常數優化 philipsweng 雖然說作為鍵盤科學家,我們更應該關心程式的時間複雜度。但是乙個寫的不好的程式可能在實際執行會跟時間複雜度更差的程式差不了多少。我們我們也應該注意程式的常數優化。對於矩陣乘法來講。我們實際上可以比較這兩種打法。實際上第二種打法在絕大多數情況下效率約為第一種的...