内存拷贝疑问
我测试了一下拷贝一段数据的时间,发现Debug比Release版更快,很疑惑,请高手解读:
大家看以下一段程序
LARGE_INTEGER lf,lc1,lc2;
int len=1024*1024;
BYTE *buf1=new BYTE[len];
BYTE *buf2=new BYTE[len];
QueryPerformanceFrequency(&lf);
QueryPerformanceCounter(&lc1);
memcpy(buf1,buf2,len);
QueryPerformanceCounter(&lc2);
char str[100];
sprintf(str,"%fms",1000*double(lc2.QuadPart-lc1.QuadPart)/lf.QuadPart);
AfxMessageBox(str);
delete []buf1;
delete []buf2;
Debug版本执行时间是2.3ms左右,Release版本执行时间4.7ms左右,这是实验了很多次的执行结果。我想请教以下大家问什么会这样,请您也实验以下,给个结果,解释以下,非常感谢。
我的机器配置比较老,赛扬1.7的内存用的是DDR400,但估计真正支持的速度可能是266,但这不影响实验的性质。