计算C语言程序运行时间(hello world)

计算C语言程序运行时间(hello world),第1张

#include "time.h"

#include "stdio.h"

main()

{

double start, finish

start = clock()//取开始时间

printf("Hello, World!\n")

finish = clock()//取结束时间

printf( "%f seconds\n",(finish - start) / CLOCKS_PER_SEC)//以秒为单位显示之

}

上面的代码理论上是可以显示printf("Hello, World!\n")语句的运行时间的,但我猜实际的显示结果是0,因为printf("Hello, World!\n")这个语句的运行时间是可以忽略不计的,加一个次数较多的循环才能看到效果

C语言中的头文件time.h中定义了库函数clock(),它返回的是从程序运行开始算起的时间,一时钟周期为单位,time.h还定义了符号:CLOCKS_PER_SEC,即一秒钟的时钟周期。这样就简单了,在头文件中加入#include<time.h>,在程序main()主函数的开头定义long now=0;并给把clock()赋值给now,即now=clock();记录程序开始时的时间,clock()会继续增加,但now已经确定为开始那一时刻clock()的值,在程序结尾,算式clock()-now就是程序执行所需的时间,但是是以时钟周期为单位的,如果想得到以秒为单位的时间只要输出(clock()-now)/CLOCKS_PER_SEC就是了,即在程序结尾添加

printf("%lf",(clock()-now)/CLOCKS_PER_SEC);就可以了。

在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 )

{

longi = 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


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存