时间:2021-05-22
测试下预取的效果,利用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 = (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;
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了JS实现动态时钟的具体代码,供大家参考,具体内容如下利用setTime()实现动态的时钟效果代码如下正在运行的时钟/*设置样式:无边框的文本
本文实例为大家分享了微信小程序canvas动态时钟的具体代码,供大家参考,具体内容如下canvas时钟效果图:代码:wxml:js:Page({data:{wi
本文实例为大家分享了使用canvas绘制时钟的具体代码,供大家参考,具体内容如下1.clock.htmlcanvas时钟varcanvas=document.g
本文实例为大家分享了利用Swing绘制一个动态时钟的具体代码,供大家参考,具体内容如下效果代码在下面,可跳过解析。前言编程实现一个时钟利用Swing绘制一个时钟
本文实例讲述了javascript背景时钟实现方法。分享给大家供大家参考。具体如下:以下是这个效果的全部代码。[最好从一个空页面开始]背景时钟说明:时钟显示的位