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