3 回答

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超13個(gè)贊
我認(rèn)為這個(gè)問(wèn)題沒(méi)有用。您開(kāi)始時(shí)的一大不利之處是沒(méi)有優(yōu)化就進(jìn)行編譯,這對(duì)于“為什么Y的性能表現(xiàn)得像Z”已經(jīng)是一個(gè)巨大的危險(xiǎn)信號(hào)-但由于編譯器僅針對(duì)較慢的情況發(fā)出了額外的指令,因此事實(shí)證明這很有趣在組裝級(jí)別的問(wèn)題。即,您幾乎可以刪除問(wèn)題的C起源,以及您在不進(jìn)行優(yōu)化的情況下進(jìn)行編譯的事實(shí),并詢(xún)問(wèn)程序集的行為,并且可能避免雪崩式的雪崩。

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超7個(gè)贊
請(qǐng)注意,call/ret
不會(huì)創(chuàng)建循環(huán)承載的依賴(lài)項(xiàng),因?yàn)橛赏扑偷牡刂?code>call來(lái)自推測(cè)執(zhí)行+分支預(yù)測(cè)。當(dāng)存儲(chǔ)不依賴(lài)于數(shù)據(jù)時(shí),多次存儲(chǔ)/重載到同一地址可以使每個(gè)時(shí)鐘維持一個(gè)時(shí)鐘。執(zhí)行ret
指令可以每個(gè)時(shí)鐘執(zhí)行一次,比call
指令落后5個(gè)周期。(當(dāng)然,調(diào)用/ ret都是分支,因此它們彼此競(jìng)爭(zhēng)執(zhí)行資源,因此甚至沒(méi)有瓶頸。)可能是問(wèn)題,是a push/pop rbp
或x=foo(x)
by ref。
- 3 回答
- 0 關(guān)注
- 601 瀏覽
添加回答
舉報(bào)