循環(huán)展開(kāi)

循環(huán)展開(kāi),英文中稱(chēng)(Loop unwinding或loop unrolling),是一種犧牲程序的尺寸來(lái)加快程序的執(zhí)行速度的優(yōu)化方法??梢杂沙绦騿T完成,也可由編譯器自動(dòng)優(yōu)化完成。

循環(huán)展開(kāi)最常用來(lái)降低循環(huán)開(kāi)銷(xiāo),為具有多個(gè)功能單元的處理器提供指令級(jí)并行。也有利于指令流水線(xiàn)的調(diào)度。

優(yōu)點(diǎn)

分支預(yù)測(cè)失敗減少
如果循環(huán)體內(nèi)語(yǔ)句沒(méi)有數(shù)據(jù)相關(guān),增加了并發(fā)執(zhí)行的機(jī)會(huì)
可以在執(zhí)行時(shí)動(dòng)態(tài)循環(huán)展開(kāi)。這種情況在編譯時(shí)也不可能掌握。

缺點(diǎn)

代碼膨脹
代碼可讀性降低,除非是編譯器透明執(zhí)行循環(huán)展開(kāi)。
循環(huán)體內(nèi)包含遞歸可能會(huì)降低循環(huán)展開(kāi)的得益
引用自wiki
https://zh.wikipedia.org/wiki/%E5%BE%AA%E7%8E%AF%E5%B1%95%E5%BC%80

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容