获取VC/MFC程序的运行时间

C++中的计时函数是clock(),而与其相关的数据类型是clock_t(头文件是time.h)。函数定义原型为:clock_t clock(void);

  这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数在MSDN中称之为 挂钟时间(wal-clock)

  其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:
   #ifndef _CLOCK_T_DEFINED
   typedef long clock_t;
   #define _CLOCK_T_DEFINED
   #endif
  很明显,clock_t是一个长整形数。另外在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,因此,我们就可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间。

下面用MFC工程演示一下

新建一个工程,名字为myDlg的基于对话框的程序,在头文件中加入下列代码:

clock_t projstart,projfinish;

在构造函数中加入下列代码:

projstart=projfinish=0;
    projstart=clock();

在OnClose()函数中加入下列代码:

projfinish=clock();
    CString porjtime;
    porjtime.Format(_T("%d"),(projfinish-projstart)/CLOCKS_PER_SEC);
    MessageBox(porjtime);

就能够只得你的程序运行时间是多少秒,要是想精确到毫秒级,则需要将程序改为:

porjtime.Format(_T("%.3f"),(double)(projfinish-projstart)/CLOCKS_PER_SEC);

 

另外:C++中有一个获取时间的函数time(0),这个获取的时间一般是13******表示的。

你可能感兴趣的:(c)