代码效率测试可以通过获取CPU频率以及始终滴答数进行测试,源码如下所示
void running(int seconds)
{
Sleep(seconds*1000);
}
void GetCPUInfo(void)
{
LARGE_INTEGER start, end;
LARGE_INTEGER freq;
double TimeSpent = 0; //花费的时间
if (SetThreadAffinityMask(GetCurrentThread(), 1) == 0) {
printf("Error:SetThreadAffinityMask\n");
}
QueryPerformanceFrequency(&freq); //获取CPU频率
QueryPerformanceCounter(&start);
running(10);
QueryPerformanceCounter(&end);
TimeSpent = (end.QuadPart - start.QuadPart)/(double)freq.QuadPart;
printf("TimeSpend: %lf\n", TimeSpent);
}
注意:double输出时可以用%lf,也可以用%f,但是当scanf输入double的时候,则double只能用%lf
测试结果如下所示