- 函数:
clock_t clock(void);
- 所在头文件:
<time.h>/<ctime>
- 函数说明: 返回从开始程序进程到调用
clock()
之间的CPU时钟计时单元(clock tick)数,即硬件滴答数 - 注意事项: 硬件滴答数需要换算成s或者ms,通过头文件
time.h
或者ctime
中的CLOCKS_PER_SEC
来实现,该值在windows下为1000,在标准POSIX下为1000000,即每过CLOCKS_PER_SEC
个滴答数,即为1s
值得注意的是:该方法计时精度有限,连续运行几十天后会出现较大误差,因此,在长时间运行的系统上需要采用更高精度的计时方法才行!
案例1:windows平台
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
clock_t start_,end_;
start_=clock(); //程序开始计时
double i=0;
while(i<9999999)
i++;
end_=clock(); //程序结束用时
double endtime=(double)(end_-start_)/CLOCKS_PER_SEC; //硬件滴答数换算成时间
cout<<"Total time:"<< endtime * 1000 << "ms" << endl; //ms为单位
return 0;
}
案例2:ubuntu平台
#include <time.h>
#include <iostream>
using namespace std;
int main()
{
clock_t start_,end_;
start_=clock(); //程序开始计时
double i = 0;
while(i<9999999)
i++;
end_=clock(); //程序结束用时
double endtime=(double)(end_-start_)/CLOCKS_PER_SEC;
cout<<"Over time:"<< endtime * 1000<< "ms" << endl; //单位ms
return 0;
}
参考文献: