【c++】time.h库的使用,计算程序运行时间

    xiaoxiao2023-10-23  166

    1、计算程序已经运行了多久

    我们首先直接给出示例代码,然后再来解释为什么:

    #include <iostream> #include <time.h> using namespace std; int main() { for(int counter = 0; counter < 50000; counter++) { cout<<'.';//会打印出一大堆‘.’ } double end = clock()/CLOCKS_PER_SEC;//计算到目前为止程序运行了多长时间 cout<<"\n\truntime "<< end; return 0; }

    运行结果:

    解释原因: 可以发现,示例程序非常简单。首先你要包含time.h这个头文件,因为计算时间就是要用它里面的函数。程序一开始,是一个循环,打印出5000个点。这里打印这么多点,看着确实不美观,但是,如果你写一个空循环,或者循环体执行一些简单计算的话,就很容易在编译的时候被优化掉。而我们的程序运行计时单位是秒,一优化,这么短的程序运行时间肯定不会超过1秒,所以丑是丑了点,但还是有道理的。然后最关键的还是double end = clock()/CLOCKS_PER_SEC;这句了。clock()是time.h中的的计时函数,简单而言,就是该程序从启动到clock()函数调用占用CPU的时钟计时单元(clock tick)数。而CLOCKS_PER_SEC是time.h宏定义的一个常数,表示一秒钟内CPU运行的时钟计时单元数量。所以两个数值相除,自然而然就是程序占用cpu的秒数。也就是程序运行时间。

    2、计算从程序的某个位置执行到另一个位置,花了多长时间。

    #include <iostream> #include <time.h> using namespace std; int main() { double start= clock()/CLOCKS_PER_SEC; for(int counter = 0; counter < 50000; counter++) { cout<<"."; } double end = clock()/CLOCKS_PER_SEC; cout<<"\n\truntime "<< end - start; return 0; }

    这个就不用解释了,与上面程序的区别就是,多了一个start,然后最后end-start,当然就是程序从start到end所使用的时间喽。

    最新回复(0)