您的位置:首页 > 其它

计算一段程序执行的时间

2012-01-18 00:27 288 查看
想在C/C++中得到当前的时间,最简单的办法是使用 ctime 库中的 time() 函数。
这里有很详细的介绍:http://www.cplusplus.com/reference/clibrary/ctime/time/
简单的说呢,通过time()函数可以得到当前的时间。
得到的是一个叫做“时间戳”的东西。时间戳是一个整数,表示自 1970 年 1 月 1 日(00:00:00 GMT)到现在的秒数。
计算一段程序执行的时间:

#include<iostream>
#include<ctime>

usingnamespace std;

intmain()
{
time_t start_second;
time_t finish_second;

start_second = time(NULL);

for(int i=0; i<1000; i++)
cout << "Hello world!"<< endl;

finish_second = time(NULL);

cout<<"Use "<<finish_second - start_second <<" second."<<endl;

return 0;
}

这段程序就缺点就是精度不够,只能精确到秒级。

下面介绍另外一个函数也在 ctime 这个时间库中,叫做 clock() 。

这里有详细的说明:http://www.cplusplus.com/reference/clibrary/ctime/clock/

这里clock() 函数得到的并不是毫秒,而是从这个程序开始运行到现在系统时钟(也可以叫CPU时钟)的滴答数。

所以光凭这个数字不能算出程序运行的具体时间,这时就需要 CLOCKS_PER_SEC 常量了,它表示每秒钟有多少个时钟滴答。

精确计算一段程序执行的时间:

#include <iostream>
#include <ctime>

using namespace std;

int main()
{
clock_t start_time,finish_time;
double duration;

start_time = clock();

for(int i=0; i<100; i++)
cout << "Hello world!" << endl;

finish_time = clock();
duration = (double)(finish_time - start_time)/CLOCKS_PER_SEC;

cout<<"Use "<< duration <<" second."<<endl;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  null