1.计算时间
(1)计算cpu占用的时间
-
#include<iostream>
-
#include<ctime>
-
void main()
-
{
-
clock_t start,finish;
-
double totaltime;
-
start=std::clock();
-
-
测试的代码...
-
-
finish=std::clock();
-
totaltime=(double)(finish-start)/CLOCKS_PER_SEC;
-
std::cout << totaltime << std::endl;
-
}
这个只能测试代码占用cpu的时间,不是测试的代码从运行到执行完的时间,因为期间有可能被挂起。打印了一下,发现
CLOCKS_PER_SEC是1000000,即1s有1000000个时钟,所以只能精确到us级别。调试的时候还发现,clock()是10000增长的,很奇怪,这样就只能精确到毫秒级别了, 我用的是CentOS6.6。
(2)计算从开始到程序执行到某个位置的时间,包括被挂起的时间
-
#include <stdio.h>
-
#include <sys/time.h>
-
long getCurrentTime()
-
{
-
struct timeval tv;
-
gettimeofday(&tv,NULL);
-
return tv.tv_sec * 1000000 + tv.tv_usec;
-
}
这个精确到了us,感觉应该还有其它方法吧,没研究过。
2.睡眠函数
(1)sleep()精确到s,usleep()精确到us,头文件为unistd.h
阅读(1306) | 评论(0) | 转发(0) |