测试判断语句花费的时间有关问题,小弟我用的是clock()
测试判断语句花费的时间问题,我用的是clock()测试代码如下:问题已在注释中此为解除注释if块[解决办法]晕,
测试判断语句花费的时间问题,我用的是clock()
测试代码如下:
问题已在注释中
此为解除注释if块
[解决办法]晕,你在release下肯定进行优化了..运行速度上都是最优的,具体怎么优化,应该有相关资料..
//这是我测试的代码。
time_t start,end;
int tmp=0;
start=time(NULL);
for(size_t i=0xffffffff;i!=0;--i)
{
++tmp;
}
end=time(NULL);
cout<<"所消耗时间:"<<difftime(end,start)<<endl;
[解决办法]release下编译器优化可能会循环展开,少了很多是否退出循环的判断,直接++tmp
[解决办法]可以trace一下汇编,看一下关键部分的指令执行的时钟周期。
[解决办法]每个指令执行需要的lantecy是不一样的,
具体的我也记不大清楚,只记得除法 > 乘法 > 加法.
[解决办法]古老的cpu可以这么看。有了cache以后一切可能有内存存取的指令都不会有固定的耗时了。万一cache miss要从内存里取你就要等上上百个cycle。
即使是纯寄存器计算,cpu流水线、OoO execution和superscalar都会导致1条汇编用x个cycle,10条同样的汇编不一定是10x个cycle。
[解决办法]你不会用两重循环或多重循环吗?