问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言怎么测试一段程序的运行时间?

发布网友 发布时间:2022-04-23 18:08

我来回答

1个回答

热心网友 时间:2022-04-27 22:24

C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:

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)   //CLOCKS_PER_SEC为系统自定义的

可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子,你可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间:

void elapsed_time() 

printf("Elapsed time:%u secs./n",clock()/CLOCKS_PER_SEC); 
}

当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:

#include “stdio.h” 
#include “stdlib.h” 
#include “time.h”

int main( ) 
{
long i = 10000000L;
clock_t start, finish;
double Total_time;
/* 测量一个事件持续的时间*/
printf( "Time to do %ld empty loops is ", i );
start = clock();
while( i--) ; 

finish = clock();
Total_time = (double)(finish-start) / CLOCKS_PER_SEC;
printf( "%f seconds/n", Total_time);
return 0;

}

在笔者的机器上,运行结果如下:

Time to do 10000000 empty loops is 0.03000 seconds

上面我们看到时钟计时单元的长度为1毫秒,那么计时的精度也为1毫秒,那么我们可不可以通过改变CLOCKS_PER_SEC的定义,通过把它定义的大一些,从而使计时精度更高呢?通过尝试,你会发现这样是不行的。在标准C/C++中,最小的计时单位是一毫秒。

参考资料

c语言测试程序执行时间.csdn博客[引用时间2017-12-31]

c语言怎么测试一段程序的运行时间?

void elapsed_time() { printf("Elapsed time:%u secs./n",clock()/CLOCKS_PER_SEC); } 当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:include “stdio.h” #include “stdlib.h” #include “time.h”int main( ) {long i = 10000000L;clock_t ...

C语言中怎样测试函数执行时间

有4种方法可以达成测算程序运行时间的目的。它们分别是使用clock, times, gettimeofday, getrusage来实现的。下面就来逐一介绍,并比较它们的优劣点。系统测试环境:VirtualBox (Ubuntu 9.10)gcc version 4.4.1 libc6 2.10.1-0ubuntu16 Core Duo T2500 2GMHz 例程如下:只要修改第11行的定义值,就...

求C语言程序:如何获得一个程序运行的时间? 最好带一段简单的代码 新人...

time()函数,获取系统时间,许多依赖于time()计算超时的程序,在修改系统时间后一般都不能正常运行。因此本人推荐:windows下:计算绝对时间QueryPerformanceCount/QueryPerformanceFrequency.cpu脉冲计数/ cpu频率,获得开机以来的秒数。当然,这两个函数获得时间精度是很高的(us级别),只是我们一般用不到这么精确。

C语言求一个程序运行时间

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;...

C语言中如何输出显示程序的运行时间? 望赐教!

QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);可以返回硬件支持的高精度计数器的频率。先调用QueryPerformanceFrequency()函数获得机器内部计时器的时钟频率。接着在需要严格计时的事件发生前和发生之后分别调用QueryPerformanceCounter(),利用两次获得的计数之差和时钟频率,就可以计算出事件经历的精确时间...

怎样知道C语言运行一个程序用了多长时间

在程序开始时调用一次time()结束时调用一次time(),两次相减就能获得秒数。例:include include <stdio.h> int main(){ int iStartTime = time(NULL);int i = 1;int iEndTime;while (i > 0)//这里应该放你要运行的程序 { i++;} iEndTime = time(NULL);printf("%ds elapsed.\n...

如何查看用c语言编写的程序的运行时间,以及内存使用

1、计时:主板高精度计时器, 精度是us级的(0.000001s)2、占用内存可用进程管理器测试

求C语言运行时间测试代码!

include include<stdio.h> include<stdlib.h> void main(void){ clock_t start,finish;double duration;start = clock();// //被测时间的随便什么东西 // finish = clock();duration = double(finish - start)/CLOCKS_PER_SEC;printf("time used:%f ms\n\n",1000*duration);} ...

C语言如何 计算程序运行时间

代码运行前获取当前系统时间,代码运行完再获取一次,相减得到时间差就是运行的时间了

C语言如何控制程序运行的时间?

利用定时器计数,在程序中判断,如果超过指定时间,退出。比如:定时器设置1秒计数一次。第一个程序,计数达到60秒,退出。

测试程序运行时间 c语言程序运行 c语言代码怎么运行 c语言程序运行步骤 c语言程序从什么开始执行 c语言编好后怎么运行 c语言程序的基本单位是什么 c语言编译程序是什么软件 c语言程序编译的快捷键
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
电脑连接上cmcc_EDU后,打开登陆页面输入手机和密码后,就是登不上去,直... 童年的作者,内容,人物形象3个人物,共200字,追加悬赏 买个柴油皮卡车代步怎么样?我是上班族,但是喜欢皮卡的狂野,又不想太... ...什么.?自行车都是普通的自行车,.对这个有什么要求么.? ...高速骑行,比如说40公里左右的时速, 能不能快速制动? 用洗衣机洗衣服衣服上的洗衣粉没洗干净怎么办 北京骑自行车到天津要注意什么?我就挑战长途自行车,这次行程坐高铁算作... 我想十二台电视同用一条入户的电视线看电视,如何实现?用什么扩大器或分... 石家庄到西柏坡自驾游攻略,正定旅游攻略自驾游 封神榜国际版67级甲士的哼哈二将任务怎么做 C语言中编译 生成 调试 测试 运行各是什么意思有什么区别 编写一个C语言的小程序,如何测试它的运行速度? c语言编程怎么测试程序的对错 c语言程序怎么测试其效果? 什么是C语言中的程序测试? “心比天高,命比纸薄”指的是《红楼梦》中的谁?为何这样形容这个人? 谁能帮我算一下命 凡心两扇门,善恶一念间。红尘皆如梦,几人能看穿。什么意思 帮忙看五行: 哪位朋友知道这段话是出自哪里的? 三刑恶曜,七煞凶星。人命直之,伤皮破肉。十相不全,口眼歪斜。心性易嗔易喜,所为少吉多凶。不戒三厌五 帮帮忙,谁能把这个古文翻译成现代文。谢谢,灰常! 心强命不强什么意思,还有心不高要求高 只有微信聊天记录,可以作为追债证据吗? 别人欠我20000元,没有欠条,有微信转账记录和聊天记录,可以起诉吗? 易之所言者,时也,运也,命也怎么解释 对方拖欠货款,微信的聊天记录可以作为证据起诉对方吗? 总觉得开心来之不易 可难过却毫不费心.啥意思? 刀可百辟,心难不易,是什么意思呢? 借款人没有欠条可以起诉吗,只有微信聊天记录 C语言中什么叫测试? C语言自动测试程序 python 如何测试自己的C语言程序? C语言课程设计里的 主要算法描述 和 程序测试过程 该怎么搞定呢? c语言程序调试 在C语言中,怎么测试运行程序所用的时间? C语言中测试程序运行时间 《C语言程序设计》测试? C语言中 黑盒测试 白盒测试 是什么?? C语言中:软件测试的目的是? 我的狐仙女友不是太明白 憨厚老实兢兢业业兴家业,求下联? 蒲松龄 的剧情简介 苹果手机下载的键盘是艺术字体为什么打上去的字体不是 iphone上可以编辑艺术字的软件? 苹果两个字艺术字怎样写好看 ps要怎么抠图换背景呢 photoshop抠图教程 贴对联作文,250字作文贴对联 有关贴对联的作文250字 社会实践作文(贴春联包饺子放鞭炮)的作文250字