程序运行的时间是影响用户体验的重要因素,没有用户想坐在电脑前等着你的程序的运行结果。那么我们就需要对程序的各个模块进行优化,也许有一部分情况,通过代码的逻辑和基于的算法,我们能直接推断出不同方法哪一个是更快的,然而也有些情况下我们无从判断,使用时间测试我们可以直观的得到哪种方法运行时效更好,对于大型项目而且模块又会被频繁执行的情况,这尤为重要。
我们要使用一个函数:clock
以下是来自百度的定义:
clock()是C/C++中的计时函数,而与其相关的
数据类型是clock_t。在MSDN中,查得对clock函数定义如下:
clock_t clock(void) ;
简单而言,就是该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。其中clock_t是用来保存时间的
数据类型。
该函数定义在time.h中,该头文件中另外定义了一个常量:CLOCKS_PER_SEC ,这个常量表示一秒钟会有多少个时钟计时单元,那么clock()/CLOCKS_PER_SEC便代表程序运行到现在经历了多少秒。
我们在测试单元开始和结尾处分别记录一下cpu时钟单元数,就能得到该单元运行的时间了。