第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在沒(méi)有優(yōu)化的情況下添加冗余分配可以加快代碼的速度

在沒(méi)有優(yōu)化的情況下添加冗余分配可以加快代碼的速度

呼如林 2019-10-22 22:02:21
我發(fā)現(xiàn)一個(gè)有趣的現(xiàn)象:#include<stdio.h>#include<time.h>int main() {    int p, q;    clock_t s,e;    s=clock();    for(int i = 1; i < 1000; i++){        for(int j = 1; j < 1000; j++){            for(int k = 1; k < 1000; k++){                p = i + j * k;                q = p;  //Removing this line can increase running time.            }        }    }    e = clock();    double t = (double)(e - s) / CLOCKS_PER_SEC;    printf("%lf\n", t);    return 0;}我在i5-5257U Mac OS上使用GCC 7.3.0編譯代碼,沒(méi)有進(jìn)行任何優(yōu)化。這是平均運(yùn)行時(shí)間超過(guò)10倍: 還有其他人在其他Intel平臺(tái)上測(cè)試該案例并獲得相同的結(jié)果。 我將在這里發(fā)布由GCC生成的程序集。兩種匯編代碼之間的唯一區(qū)別是,在較快的一種匯編代碼之前,還有兩項(xiàng)操作:在此處輸入圖片說(shuō)明addl $1, -12(%rbp)movl    -44(%rbp), %eaxmovl    %eax, -48(%rbp)那么,為什么用這樣的分配程序運(yùn)行得更快?彼得的回答很有幫助。在AMD Phenom II X4 810和ARMv7處理器(BCM2835)上進(jìn)行的測(cè)試顯示了相反的結(jié)果,該結(jié)果支持存儲(chǔ)轉(zhuǎn)發(fā)加速特定于某些Intel CPU。而B(niǎo)eeOnRope的評(píng)論和建議催著我重寫(xiě)的問(wèn)題。:) 這個(gè)問(wèn)題的核心是與處理器架構(gòu)和組裝相關(guān)的有趣現(xiàn)象。因此,我認(rèn)為值得討論。
查看完整描述

3 回答

?
慕桂英4014372

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)程序集的行為,并且可能避免雪崩式的雪崩。

查看完整回答
反對(duì) 回復(fù) 2019-10-22
?
慕田峪9158850

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 rbpx=foo(x)by ref。

查看完整回答
反對(duì) 回復(fù) 2019-10-22
  • 3 回答
  • 0 關(guān)注
  • 601 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)