- 相關推薦
淺談VC++中的內聯論文
內聯的語法
在類聲明中定義方法;
內聯方法放在類聲明之外,但必須出現在頭文件中,且內聯方法聲明中使用inline標識;
注:inline只是對編譯器的建議,是否內聯的決定權在編譯器;
內聯節省的開銷
函數調用開銷
調用間優化 優秀的編譯器可是內聯方法的邊界難以區分(將代碼內聯后,對代碼進行重新排列)
內聯帶來的問題
代碼膨脹(空間開銷)
由于代碼膨脹帶來的頁面緩存命中率下降
編譯時間增加
修改文件后相關文件都需要重新編譯;
由于函數邊界模糊,該內聯函數遇到問題后不好排查;
內聯函數的建議
優化時,只針對高頻代碼內聯;
對于調用頻率高的(80%以上場景都會走到的路徑):
函數規模<5行:總是內聯;
5-20行,將高頻率的調用點選擇性內聯;
超過20行,重寫方法,體現出快速路徑并將其內聯;
內聯的技巧
將內聯工作放到開發周期后期
使用條件內聯,通過宏和編譯選項的技巧控制在開發初期不內聯,而到開發后期再加上自定義內聯選項進行內聯;
SPARC體系結構中的內聯
SPARC中有充足的寄存器,在限定的調用深度范圍內幾乎沒有調用返回的性能損失(無須在調用時存儲就的寄存器內容),所有,這種體系結構的內聯效果甚微,一般不用考慮內聯;
以上所述就是本文的全部內容了,希望大家能夠喜歡。
【淺談VC++中的內聯論文】相關文章:
淺談教學中的體會論文04-27
淺談城市中的垂直綠化論文04-30
淺談GPS在工程測量中的應用論文12-15
淺談感恩教育中的三要論文05-02
淺談教學在體育教學中的運用的論文05-02
淺談管井降水在基坑施工中的應用論文04-30
美術教學中的結構素描淺談論文05-01
淺談語文課堂中的小論文05-02
淺談語文教學中的德育論文05-02
淺談職業學校中對差生的教學論文05-02