怎样计算程序的执行时间(C语言中)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样计算程序的执行时间(C语言中)?相关的知识,希望对你有一定的参考价值。

用库函数或自己怎样写都可以。

在c语言中有专门处理系统时间,程序计时等等功能的库,
即time.h
在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,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:

#define CLOCKS_PER_SEC ((clock_t)1000)

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

下面这个程序计算了循环1千万次所用的时间:

#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");


运行结果如下:

Time to do 10000000 empty loops is 0.03000 seconds

参考资料:http://www.zxbc.cn/html/cjjhs/0312542045823.html
参考技术A gettime可以得到毫秒级的时间
#include <stdio.h>
#include <dos.h>

int main(void)

struct time t;

gettime(&t);
printf("The current time is: %2d:%02d:%02d.%02d\n",
t.ti_hour, t.ti_min, t.ti_sec, t.ti_hund);
return 0;

C语言中,怎样调用外部exe程序,等外部程序执行完之后在执行本程序的下一条语句

参考技术A system ("shell c:\virus.exe") ;
这个函数可以在windows上执行c盘下virus.exe并且立即返回
参考技术B #include <stdlib.h>
int system(const char *command) ;
试试这个命令。本回答被提问者采纳
参考技术C system("xxx.exe");

以上是关于怎样计算程序的执行时间(C语言中)?的主要内容,如果未能解决你的问题,请参考以下文章

在c语言编程中,如果先执行一条语句,隔段时间,在执行下一条语言,该怎样实现呢?

C语言计算程序中某一个函数或算法的执行时间

VBA怎样从选择的语句行开始执行?

Unix/Linux环境C编程新手教程(22) C/C++怎样获取程序的执行时间

C语言中,怎样调用外部exe程序,等外部程序执行完之后在执行本程序的下一条语句

在linux下怎样用c语言获取MP3时长?最好有个例子!