测试“求余” 与 “位与” 的效率
测试环境:
1、操作系统: Windows XP Professional SP2
2、CPU: Intel Celeron 3.06GHz
3、内存: 248M
循环次数:
各40亿次
测试代码如下:
//代码开始
//******************************************************
#include <iostream>
using namespace std;
#include <time.h>
#include <windows.h>
int main( int argc, char *argv[ ], char *envp[ ] )
{
clock_t t1, t2;
t1 = ::GetTickCount();
for(unsigned long i = 0; i < 4e9; i++)
{
if(i%2==0);//求余运算
}
t2 = ::GetTickCount();
cout << "求余执行"<< i <<"次时间:" << t2 - t1 << "毫秒" << endl;
t2 = t1 = 0;
Sleep(50);
t1 = ::GetTickCount();
for(i = 0; i < 4e9; i++)
{
if(i&1==0);//位与运算
}
t2 = ::GetTickCount();
cout << "位与执行"<< i <<"次时间:" << t2 - t1 << "毫秒" << endl;
return 0;
}
//******************************************************
//代码结束
程序执行3次结果如下:
求余执行4000000000次时间:113110毫秒
位与执行4000000000次时间:113188毫秒
求余执行4000000000次时间:113093毫秒
位与执行4000000000次时间:113141毫秒
求余执行4000000000次时间:113109毫秒
位与执行4000000000次时间:113141毫秒
从结果可判断:“求余” 与 “位与”执行效率相差无几。