c++如何计算程序运行时间并输出

c++如何计算程序运行时间并输出,第1张

c++计算程序运行时间:

一、clock()计时函数:

clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t。clock函数定义如下:clock_t clock(void) 简单而言,就是该程序从启动到函数调用占用CPU的时间。这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock);若挂钟时间不可取,则返回-1。其中clock_t是用来保存时间的数据类型。

二、相关定义:

在time.h文件中,我们可以找到对clock_t()的定义:#ifndef _CLOCK_T_DEFINEDtypedef long clock_t

#define _CLOCK_T_DEFINED

#endif

很明显,clock_t是一个长整形数。

在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:#define CLOCKS_PER_SEC ((clock_t)1000)

三、使用实例:

//计算一段程序运行的时间

#include<iostream>

#include<ctime>

using namespace std

int main()

{

clock_t startTime,endTime

startTime = clock()//计时开始

for (long i = 0i <2147483640i++)

{

i++

}

endTime = clock()//计时结束

cout <<"The run time is: " <<(double)(endTime - startTime) / CLOCKS_PER_SEC <<"s" <<endl

system("pause")

return 0

}

//注释在:VC++6.0中可以用CLK_TCK替换CLOCKS_PER_SEC。

第一种是以毫秒为单位计算的。

[java] view plain copy

//伪代码

long startTime=System.currentTimeMillis()   //获取开始时间

doSomeThing()  //测试的代码段

long endTime=System.currentTimeMillis() //获取结束时间

System.out.println("程序运行时间: "+(end-start)+"ms")

第二种是以纳秒为单位计算的。 

[java] view plain copy

//伪代码

long startTime=System.nanoTime()   //获取开始时间

doSomeThing()  //测试的代码段

long endTime=System.nanoTime() //获取结束时间

System.out.println("程序运行时间: "+(end-start)+"ns")

包含所需的包:  import java.lang.System

C/C++中的计时函数是clock()。

所以,可以用clock函数来计算的运行一个循环、程序或者处理其它事件到底花了多少时间,具体参考代码如下:

#include “stdio.h”

#include “stdlib.h”

#include “time.h”

int main( void )

{

   long    i = 10000000L

   clock_t start, finish

   double  duration

   /* 测量一个事件持续的时间*/

   printf( "Time to do %ld empty loops is ", i )

   start = clock()

   while( i-- )      

   finish = clock()

   duration = (double)(finish - start) / CLOCKS_PER_SEC

   printf( "%f seconds\n", duration )

   system("pause")

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7845137.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-10
下一篇2023-04-10

发表评论

登录后才能评论

评论列表(0条)

    保存