麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 服務器 > Linux服務器 > 正文

淺談Linux環境下gcc優化級別

2024-09-05 23:04:13
字體:
來源:轉載
供稿:網友

代碼優化可以說是一個非常復雜而又非常重要的問題,以筆者多年的linux c開發經驗來說優化通常分為兩個方面,一是人為優化,也就是基于編程經驗采用更簡易的數據結構函數等來降低編譯器負擔,二是采用系統自帶的優化模式,也就是gcc - o系列,下面我將簡述一下各級優化的過程以及實現。

gcc - o1 首先o1上面還有一個o0,那個是不提供任何優化,項目中幾乎不會使用,而o1使用就非常廣泛了,o1是最基本的優化,主要對代碼的分支,表達式,常量來進行優化,編譯器會在較短的時間下將代碼變得更加短小,這樣體積就會變得更小,會減少內存的占用率,在操作系統進行內存調度時就會更快。但是事情沒有絕對的優點,當一個龐大的程序被拆碎細分的話,內存占用會大大增加,由于當今系統大多數都是多線程,就會出現卡頓和反應延遲。

gcc - o2 這個優化級別是o1的進階,在上一級的基礎上會進行更嚴格的細分,最重要的是加入了寄存器的使用。寄存器是cpu中重要的組成部分,此外還有運算器和控制器,計算機顧名思義,要進行各種龐雜的計算,由于cpu速度較快,所以計算的中間結果都會保存在寄存器中,這樣可以大大提高系統的效率,但是寄存器造價高昂,數量有限,所以一般來說程序不會放在寄存器中,另一種將代碼放在寄存器的方式是使用register修飾變量,適用于頻繁調用的變量。

gcc - o3 這個優化屬于非常強大的優化,因為編譯器會進行預測,對循環每一層的預測,以便于將循環拆分,可以提高執行效率。編譯器還會試圖用已有的值來代替未知的值,并且還會用加代替乘,因為運算器的特性,乘法十分復雜耗時。當然o3的缺點最明顯,那就是o3因為試圖預測程序的走向,可能會出現誤差,導致錯誤和程序不可逆轉的走向。所以一般o3不建議使用。
以上就是關于優化的三個等級,對于優化,系統的優化還是機械的,程序員對于語言深刻的理解,巧妙地算法可能會更有意義。

總結

以上就是本文關于淺談Linux環境下gcc優化級別的全部內容,希望對大家有所幫助。歡迎大家繼續參閱本站其他相關專題,感謝朋友們對VEVB武林網網站的支持。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品亚洲福利一区二区 | 免费在线观看一级片 | 欧美成人二区 | 色97在线| 在线观看国产网站 | 青青草华人在线 | 中文字幕一区2区 | 久久亚洲国产精品 | 91精品国产乱码久久久久久久久 | 国产精品成人亚洲一区二区 | 亚洲一区二区不卡视频 | 中文字幕在线观看91 | 牛牛a级毛片在线播放 | wankz100%videos| 欧美a在线观看 | 久久精品re | 欧美18一12sex性处hd | 国产精品视频自拍 | 综合网日日天干夜夜久久 | 视频在线色| 视屏一区| 黄色a级片视频 | 免费一级a毛片免费观看 | 成年人毛片视频 | 韩国美女一区 | 中文字幕在线观看日韩 | av在线免费电影 | 国产福利视频在线观看 | av在线在线 | 国产亚洲精品久久久久久久久久 | 欧美雌雄另类xxxxx | 黄色视频a级毛片 | 亚洲va久久久噜噜噜久久男同 | 国产精品一区二区x88av | 欧美日韩电影在线 | 黄色网页在线看 | 激情综合在线观看 | 国产午夜免费福利 | av播放在线 | 黄视频免费在线观看 | 日韩视频―中文字幕 |