主頁 > 知識庫 > cpu時鐘預(yù)取實(shí)例代碼分享

cpu時鐘預(yù)取實(shí)例代碼分享

熱門標(biāo)簽:揭陽智能電話機(jī)器人推薦 打電話機(jī)器人接我是他的秘書 客服外呼系統(tǒng)怎么樣 地圖標(biāo)注員都是年輕人 河南信譽(yù)好的不封卡電話外呼系統(tǒng) 如果做線上地圖標(biāo)注 百度地圖標(biāo)注錯了有責(zé)任嗎 江蘇云電銷機(jī)器人公司 華鋒e路航港口地圖標(biāo)注

測試下預(yù)取的效果,利用CPU始終查看效果。根據(jù)實(shí)驗(yàn)發(fā)現(xiàn),預(yù)取地址在地址使用之前的十行左右代碼處效果比較好!

復(fù)制代碼 代碼如下:

#include stdio.h>

#define MAX_LEN 1000000

static inline void prefetchnta(void *addr) //預(yù)取部分
{
    __asm__("movl %0, %%eax"::"a"(addr));
    __asm__(".byte 0x0f, 0x18, 0x00");
}

inline unsigned long long GetCPUTickCount()
{
    unsigned long high32 = 0;
    unsigned long low32 = 0;

    __asm__("RDTSC" : "=a"(low32), "=d"(high32));

    unsigned long long counter = high32;
    counter = (counter32) + low32;

    return counter;
}

int main(int argc, char* argv[])
{
    long long start, end;
    long long array[MAX_LEN];
    int i;

    for(i = 0; i MAX_LEN; i++) //讓cache失效
        array[i]++;

    start = GetCPUTickCount();
    array[0]++;
    end = GetCPUTickCount();
    printf("don't use prefetch time:%ld\n", end - start);


    for(i = 0; i MAX_LEN; i++)
        array[i]++;

    prefetchnta(array);
    start = GetCPUTickCount();
    array[0]++;
    end = GetCPUTickCount();
    printf("use prefetch time:%ld\n", end - start);

    return 0;
}

標(biāo)簽:巴彥淖爾 婁底 馬鞍山 淘寶邀評 許昌 金昌 赤峰 邵陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《cpu時鐘預(yù)取實(shí)例代碼分享》,本文關(guān)鍵詞  cpu,時鐘,預(yù)取,實(shí)例,代碼,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《cpu時鐘預(yù)取實(shí)例代碼分享》相關(guān)的同類信息!
  • 本頁收集關(guān)于cpu時鐘預(yù)取實(shí)例代碼分享的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章