• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    cpu时钟预取实例代码分享

    测试下预取的效果,利用CPU始终查看效果。根据实验发现,预取地址在地址使用之前的十行左右代码处效果比较好!

    复制代码 代码如下:

    #include stdio.h>

    #define MAX_LEN 1000000

    static inline void prefetchnta(void *addr) //预取部分
    {
        __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;
    }

    上一篇:局域网远程开机软件制作代码分享
    下一篇:实现shell终端代码分享(可用户登录 实现系统命令)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    cpu时钟预取实例代码分享 cpu,时钟,预取,实例,代码,