如果我使用-O0
運行gcc,並且使用諸如here提到的那些技術手動優化我的代碼,那麼當我使用-O3
運行gcc時,我的優化代碼運行速度通常會比未優化的代碼快嗎?也就是說,如果我在特定的編譯器優化級別下手動優化代碼,通常情況下,這些優化在不同的(更高或更低)編譯器優化級別下仍然是有生產力的(而不是適得其反)。在不同的gcc優化級別上,手動優化代碼的效果是否一致?
2
A
回答
0
它在不同的編譯器中可能不一樣。即使編譯器可以取消你的手優化,我的意思是忽略它們。它很大程度上取決於編譯器本身的實現和行爲。大多數優化就像編譯器的請求,可隨時丟棄(大多數情況下無需任何通知)
+0
假設我使用相同的編譯器版本,只是不同的標誌,但? – merlin2011 2013-05-02 18:25:58
+0
對不起,我的答案似乎有點關閉。我談到了不同的編譯器。一般來說,如果它是一個屬性聲明或類似於單獨的'tag'的編譯器,編譯器會盡量保持它作爲用戶約束直到結束。因此,這可能會迫使編譯器放棄原生(內置)優化。但是像代碼流改變那樣的修改,使用不同的操作符都是不同的。所以這些可能讓位於本地優化。因此,您可能會根據輸入得到混合結果。但是這種相互衝突的情況應該很少見。 – abasu 2013-05-02 18:44:01
相關問題
- 1. gcc是否優化了內核代碼?
- 2. GCC SSE代碼優化
- 3. GCC處理在不同的優化級別上浮點數比較不同
- 4. D上的優化級別是什麼?
- 5. GCC優化級別。哪個更好?
- 6. GCC手工採摘優化
- 7. 測試代碼的GCC優化設置
- 8. 優化代碼效率
- 9. Unix上的優化代碼?
- 10. jQuery動畫效果優化
- 11. 犀牛的優化級別
- 12. 如果此代碼優化?
- 13. 移動優化網站在不同瀏覽器上的不同縮放級別
- 14. GCC printf優化
- 15. 優化代碼
- 16. 代碼優化
- 17. gcc/C++ 11:優化級別更改操作結果
- 18. gcc瘋狂的優化級別(-O3)不夠瘋狂嗎?
- 19. 相同的優化代碼不同的計算機上的不同結果
- 20. GCC優化:由fgets導致的錯誤
- 21. gcc是否優化連續添加?
- 22. OpenCL代碼是否可以優化?
- 23. 什麼是代碼優化?
- 24. 提高優化級別g ++
- 25. Xcode默認優化級別?
- 26. 推薦鐺優化級別?
- 27. FORTIFY_SOURCE和Og優化級別
- 28. 使用#pragma G代碼優化的C代碼優化
- 29. JIT優化器是否優化乘法?
- 30. gcc的優化的說明
不一定。編譯器很好地理解簡單的代碼,並且可以很好地優化它。編譯器並不能很好地理解複雜的手工優化代碼,因此經常無法優化代碼。但它知道一些常見的成語,並且可以毫無問題地處理這些成語。 – 2013-05-02 18:19:48