理论上的时间复杂度分析,以及实践中的具体的程序运行时间是衡量程序复杂度以及检测程序性能提升的重要指标。
最常用的方式:
#include <time.h>
time_t t0 = clock();
...
time_t t1 = clock();
printf("the running time is: %f\n", double(end-start)/CLOCKS_PER_SEC);
注:
time_t 的真正类型(64位有符号整型)
typedef __int64 __time64_t; typedef __time64_t time_t;
CLOCKS_PER_SEC
#define CLOCKS_PER_SEC 1000
- clock() 计算的是 CPU 执行耗时,注意是 CPU,如果有多个核并行,最后的结果是每个 CPU 上运行时间的总和!想要精确到毫秒,可以使用
double(t1-t0)*1000/CLOCKS_PER_SEC;
- clock() 计算的是 CPU 执行耗时,注意是 CPU,如果有多个核并行,最后的结果是每个 CPU 上运行时间的总和!想要精确到毫秒,可以使用
一般来说,只要求精确到秒的话,time() 函数更为好用:
#include <time.h>
#include <stdio.h>
#include <Windows.h>
// vc ⇒ Sleep();
// 参数是毫秒
int main(int, char**)
{
time_t t0 = time(NULL);
Sleep(3000);
time_t t1 = time(NULL);
printf("the running time: %.0f s\n", double(t1-t0)/CLOCKS_PER_SEC);
return 0;
}