ivaneeo's blog

          自由的力量,自由的生活。

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
                                    gcc優化標志
          選項                  作用
          -ffloat-store         禁止在CPU的寄存器中保存浮點變量的值.這能把CPU寄存器節省下來留作它用,而且可以防止產生過分精確但不必要的浮點數.
          -ffast-math           產生浮點數學優化,這能提高速度但違反了IEEE或ANSI/ISO標準.如果程序不需要嚴格遵守IEEE規范,可在編譯浮點密集型的程序時考慮采用這一標志
          -finline-functions    把所有的"簡單"函數在調用它們的函數中就地展開.編譯器決定了什么是"簡單"函數.減少處理器與函數相關的開銷是一種基本的優化技術
          -funroll-loops        展開所有能在編譯時確定重復次數的循環體.展開循環體后每步循環都能省出幾條CPU指令,這樣大大減少了執行時間
          -fomit-frame-pointer  如果函數不需要則丟掉指針,該指針保存在CPU的一個寄存器中.因為去掉了設置,保存和恢復幀指針所必需的指令,所以加快了處理速度.
          -fschedule-insns      記錄可能暫停的指令,因為它們正在等候的數據不在CPU中
          -fschedule-insns2     執行第二次指令重排序(類似于-fschedule-insns)
          -fmove-all-movables   把所有出現在循環體內部但穩定不變的計算移出循環體.這從循環體中去除了不必要的操作,加快了循環的整體運算速度.

          內聯和循環展開技術都能夠大大提高程序的執行速度,因為它們都避免了函數調用和變量查找的開銷,但付出的代價往往是大大增加了目標或二進制代碼的大小.

          一般而言,Linux程序員似乎愛用優化選項-O2.
          posted on 2005-08-04 21:57 ivaneeo 閱讀(1728) 評論(0)  編輯  收藏 所屬分類: gcc小試牛力
          主站蜘蛛池模板: 合水县| 西乌珠穆沁旗| 玛多县| 桓仁| 内黄县| 东乌珠穆沁旗| 电白县| 蕲春县| 罗城| 盱眙县| 商洛市| 阿瓦提县| 河北区| 大连市| 无锡市| 铜陵市| 昌图县| 安国市| 涞源县| 扶风县| 武鸣县| 开封市| 永清县| 辛集市| 云梦县| 浦江县| 青海省| 荆州市| 育儿| 汨罗市| 黑山县| 银川市| 七台河市| 堆龙德庆县| 横峰县| 彭水| 屯门区| 宝清县| 金乡县| 剑川县| 洛南县|