一般在稍大一些项目中,总会想要得到某段代码的运行时间,C++中有内置函数可以实现该目的,也可以借助其他一些常用库。
方法一
函数:clock()
用法:
#include <ctime> //需包含该头文件,或者包含<time.h>
const clock_t begin_time = clock( );
.......此处为需要统计运行时间的代码
float seconds = float(clock( ) - begin_time) / 1000;//此处1000指的是每秒为1000个时钟周期,所以要想得到以秒为单位的时间,需要除以1000.
函数理解:
1. typedef long clock_t
2. clock_t clock(void)
返回从“开启这个程序进程”到“程序中调用clock()函数”时
之间的CPU时钟计时单元(clock tick)数,此时就要注意在调试程序时暂停的时间也要算入进去
3. CLOCKS_PER_SEC
用来表示一秒钟会有多少个时钟计时单元,其定义如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
4. 局限性:最小精度1毫秒
小技巧:如果计算时间较长,想要把时间换算成一共运算了多少天多少时多少分多少秒的形式,可以灵活运用求余运算符%:
注意: clock()函数返回程序目前为止运行的时间,所以,如果在程序结束之前调用此函数,便可获得整个程序的运行时间(此时间是从程序开始运行时就开始计时的)。这个时间除以常数CLOCKS_PER_SEC之后得到的值以“秒”为单位。此时还要注意,如果程序中涉及到从键盘读入数据,那么等待键盘操作这部分时间也会算在程序运行时间之中。
方法二
使用Boost库中的timer
#include <boost/timer.hpp>
timer t_ogm;//创建timer对象
......
some handle steps
......
float time_cost = t_ogm.elapsed();//返回处理处理时间,秒