糯米文學吧

位置:首頁 > 設計 > 美工設計

VC++中的內聯

內聯,在類聲明中定義方法;內聯方法放在類聲明之外,但必須出現在頭文件中,且內聯方法聲明中使用inline標識;下面是YJBYS小編整理的VC++中的內聯的相關知識,希望對你有幫助!

VC++中的內聯

  內聯節省的開銷

函數調用開銷

調用間優化 優秀的`編譯器可是內聯方法的邊界難以區分(將代碼內聯後,對代碼進行重新排列)

  內聯帶來的問題

代碼膨脹(空間開銷)

由於代碼膨脹帶來的頁面緩存命中率下降

編譯時間增加

修改文件後相關文件都需要重新編譯;

由於函數邊界模糊,該內聯函數遇到問題後不好排查;

  內聯函數的建議

優化時,只針對高頻代碼內聯;

對於調用頻率高的(80%以上場景都會走到的路徑):

函數規模<5行:總是內聯;

5-20行,將高頻率的調用點選擇性內聯;

超過20行,重寫方法,體現出快速路徑並將其內聯;

  內聯的技巧

將內聯工作放到開發週期後期

使用條件內聯,通過宏和編譯選項的技巧控制在開發初期不內聯,而到開發後期再加上自定義內聯選項進行內聯;

SPARC體系結構中的內聯

SPARC中有充足的寄存器,在限定的調用深度範圍內幾乎沒有調用返回的性能損失(無須在調用時存儲就的寄存器內容),所有,這種體系結構的內聯效果甚微,一般不用考慮內聯;

標籤:VC 內聯