使用clock()计算函数(或指令)耗时

    我们知道在windows平台中可以使用GetTickCount()来获取当前计算机开机到目前所运行的时刻所消耗的cpu运行时间(单位为毫秒),当需要计算一个函数(或计算机指令)需要消耗的时长时,可以在函数前后获取当前的运行时间得到差额,则可以计算出函数运行所消耗的毫秒数,但此函数仅限于windows平台,如何使用c++标准得到消耗时长呢?我们可以使用clock()函数代替GetTickCount()。

    clock函数定义如下: clock_t clock( void ); 这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:

 #ifndef _CLOCK_T_DEFINED

typedef long clock_t;

 #define _CLOCK_T_DEFINED

  #endif

  很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:

 #define CLOCKS_PER_SEC ((clock_t)1000) 可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。


  因此需要计算函数(或指令)运行消耗的时间,可以在其前后计算差额得到clock_t,再把clock_t转化为毫秒:clock_t/CLOCKS_PER_SEC*1000

你可能感兴趣的:(c++)