最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2013年12月19日 15:05:50   作者:  
cpu時鐘預(yù)取實例代碼分享,大家參考使用吧

測試下預(yù)取的效果,利用CPU始終查看效果。根據(jù)實驗發(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 = (counter<<32) + 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;
}

相關(guān)文章

最新評論

盐池县| 青河县| 山西省| 阿拉善盟| 舟山市| 伊川县| 烟台市| 淮阳县| 广灵县| 防城港市| 洛川县| 延长县| 昌乐县| 古田县| 五家渠市| 井研县| 莱西市| 左云县| 梧州市| 汉中市| 牡丹江市| 富顺县| 霍山县| 开江县| 宁河县| 浠水县| 延长县| 元氏县| 定州市| 延寿县| 宝应县| 会昌县| 通许县| 饶平县| 嘉禾县| 嘉鱼县| 德格县| 安乡县| 邻水| 汕头市| 耒阳市|