- 相關(guān)推薦
VC++中的內聯(lián)
內聯(lián),在類(lèi)聲明中定義方法;內聯(lián)方法放在類(lèi)聲明之外,但必須出現在頭文件中,且內聯(lián)方法聲明中使用inline標識;下面是YJBYS小編整理的VC++中的內聯(lián)的相關(guān)知識,希望對你有幫助!
內聯(lián)節省的開(kāi)銷(xiāo)
函數調用開(kāi)銷(xiāo)
調用間優(yōu)化 優(yōu)秀的編譯器可是內聯(lián)方法的邊界難以區分(將代碼內聯(lián)后,對代碼進(jìn)行重新排列)
內聯(lián)帶來(lái)的問(wèn)題
代碼膨脹(空間開(kāi)銷(xiāo))
由于代碼膨脹帶來(lái)的頁(yè)面緩存命中率下降
編譯時(shí)間增加
修改文件后相關(guān)文件都需要重新編譯;
由于函數邊界模糊,該內聯(lián)函數遇到問(wèn)題后不好排查;
內聯(lián)函數的建議
優(yōu)化時(shí),只針對高頻代碼內聯(lián);
對于調用頻率高的(80%以上場(chǎng)景都會(huì )走到的路徑):
函數規模<5行:總是內聯(lián);
5-20行,將高頻率的調用點(diǎn)選擇性?xún)嚷?lián);
超過(guò)20行,重寫(xiě)方法,體現出快速路徑并將其內聯(lián);
內聯(lián)的技巧
將內聯(lián)工作放到開(kāi)發(fā)周期后期
使用條件內聯(lián),通過(guò)宏和編譯選項的技巧控制在開(kāi)發(fā)初期不內聯(lián),而到開(kāi)發(fā)后期再加上自定義內聯(lián)選項進(jìn)行內聯(lián);
SPARC體系結構中的內聯(lián)
SPARC中有充足的寄存器,在限定的調用深度范圍內幾乎沒(méi)有調用返回的性能損失(無(wú)須在調用時(shí)存儲就的寄存器內容),所有,這種體系結構的內聯(lián)效果甚微,一般不用考慮內聯(lián);
【VC++中的內聯(lián)】相關(guān)文章:
vc++中的ADO的應用08-22
集體中塑造自我合作中拓展快樂(lè )07-14
excel中輸入的坐標怎么在CAD中畫(huà)圖09-15
象棋中炮及中兵卒重要性08-16
舞蹈中的禮儀07-26
《禮記》中的智慧08-16
社交中的微笑10-27
在舞蹈中瘦身10-04
設計中的修行06-12
圍棋中的“氣”09-08