C++用clock()函数计算程序的运行时间(计时)

C++中clock()函数可以帮助我们实现程序运行时间计算的功能

clock函数定义如下:
clock_t clock( void );

  • clock_t只是一个预先用typedef取的类型别名,不要慌张
  • CLOCKS_PER_SEC是一个预先的定义的常量,表示一秒钟会有多少个时钟计时单元

函数clock()返回从开启这个程序进程程序中调用clock()函数之间的CPU时钟计时单元数

查看头文件time.h中的源码如下:

#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define CLOCKS_PER_SEC ((clock_t)1000000)
#define _CLOCK_T_DEFINED
#endif

分别调用两次clock()就可以用公式计算这两次调用之间程序运行的时间了

clock_t start = clock();
clock_t finish = clock();
可以用公式(finish - start) /CLOCKS_PER_SEC来计算一个进程自身的运行时间(单位是秒)

C++代码

#include <iostream>
#include <ctime>

using namespace std;

int main(void) {
	clock_t start = clock(); // clock_t是long的别名(ctime中预定义的)

	for (long long i = 1; i < 3e8; i ++) ;

	clock_t finish = clock();

    cout << "start:   已有 " << start << " 个CPU时钟计时单元数" << endl;
	cout << "finish:  已有 " << finish << " 个CPU时钟计时单元数" << endl;
	cout <<  "此机器每秒钟会有 " << CLOCKS_PER_SEC << " 个时钟计时单元" << endl << endl;
	
	double cost_time = (double)(finish - start) / CLOCKS_PER_SEC;
	
	printf("这部分程序的运行时间为:%.30f秒", cost_time);
	return 0;
}

我的机器的输出

start:   已有 1364 个CPU时钟计时单元数
finish:  已有 755022 个CPU时钟计时单元数
此机器每秒钟会有 1000000 个时钟计时单元

这部分程序的运行时间为:0.753658000000000050100368298445
发布了239 篇原创文章 · 获赞 80 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/qq_43827595/article/details/104301825