我想知道所有可能的方式(或至少流行的方式),其中編譯器可以/優化我們用C++編寫的代碼嗎?我也想知道如何完成優化(在每種情況下)!
到目前爲止,我知道兩個優化,即,空基優化(EBO)和返回值優化(RVO)。還有什麼?我聽說過「const」優化,「未使用的變量」優化。他們是什麼?
。
我想知道所有可能的方式(或至少流行的方式),其中編譯器可以/優化我們用C++編寫的代碼嗎?我也想知道如何完成優化(在每種情況下)!
到目前爲止,我知道兩個優化,即,空基優化(EBO)和返回值優化(RVO)。還有什麼?我聽說過「const」優化,「未使用的變量」優化。他們是什麼?
。
令人難以置信的是廣泛的,因爲有很多的優化和編譯器編寫者總是想着多了起來。它們中有很多,一些針對運行時間進行優化,另一些針對二進制大小進行優化。許多也不是特別的C++,一般的編譯器優化技術是針對許多不同語言的編譯器/解釋器而實現的。
那麼幾個:
更多信息:
全部可能方式?當然你在開玩笑。爲此,請瀏覽多年的編譯器研究和實踐。
對於具體的實例,查找每個在這裏的選項:http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
從標準文檔,第1.9節,
4)這一規定有時被稱爲「爲假設」規則,因爲的實現可以自由地忽視本國際標準 的任何要求,只要結果就好像該要求已被遵守一樣,只要可以從觀察者確定該計劃的可行行爲。例如, 一個實際的實現不需要評估表達式的一部分,如果它可以推斷出它的值沒有被使用,也不會產生影響程序可觀察行爲的副作用。
因此,實際上符合標準的編譯器可以,只要它產生的所需結果進行任何優化。
http://en.wikipedia.org/wiki/Category:Compiler_optimizations – icecrime 2010-12-03 07:45:16
什麼是點? – avakar 2010-12-03 08:20:45
點?哪個點? – Nawaz 2010-12-03 08:23:28