C语言——使用clock()函数获取程序执行时间

clock():捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick ,即“时钟打点”。

常数CLK_TCK:机器时钟每秒所走的时钟打点数。

 1 #include <stdio.h>
 2 #include <time.h>
 3
 4 colck_t start, stop;
 5 /* clock_t 是clock() 函数返回的变量类型*/
 6
 7 double duration;
 8 /* 记录被测函数运行时间,以秒为单位*/
 9
10 int main()
11 {
12     /*不在测试范围内的准备工作写在clock()调用之前*/
13     start = clock();        /*    开始计时    */
14     MyFunction();            /*    把被测函数加在这里    */
15     stop = clock();            /*     停止计时    */
16     duration = ((double)(stop - start))/CLK_TCK;
17
18     /*    其他不在测试范围的处理写在后面,eg:输出duration的值*/
19 }

实验_eg:执行下面打印一次“Hello World!”的时间

     注意:因为程序执行的太快,所以显示为0;

 1 #include <stdio.h>
 2 #include <time.h>
 3 void hello();
 4 int main(){
 5     clock_t start, stop;
 6     double duration;
 7     start = clock();
 8     hello();
 9     stop = clock();
10     duration = ((double)(stop - start))/CLK_TCK;
11     printf("该程序运行的时间是:%f\n",duration);
12     return 0;
13 }
14 void hello(){
15     printf("Hello World!\n");
16 }

解决方案:让被测函数重复运行充分多次,使得测出的总的时钟打点间隔充分长,最后计算被测函数平均运行的时间。

 1 #include <stdio.h>
 2 #include <time.h>
 3
 4 #define MAXK 1e5 /*    被测函数最大重复调用次数    */
 5
 6 void hello();
 7 int main(){
 8     int i;
 9     clock_t start, stop;
10     double duration;
11     start = clock();
12     for(i=0; i<MAXK; i++){
13         hello();
14     }
15     stop =  clock();
16     duration = ((double)(stop - start))/CLK_TCK/MAXK;
17
18     printf("duration = %f\n",duration);//0.00003s左右
19     return 0;
20 }
21
22 void hello(){
23     printf("Hello world!");
24 }

时间: 2024-10-05 05:00:09

C语言——使用clock()函数获取程序执行时间的相关文章

node js 获取程序执行时间 time timeEnd

node js 获取程序执行时间 time timeEnd 示例代码: function getFunRunTime(){ console.time('test'); let temp; for (let index = 0; index < 10000; index++) { temp += index } // time和timeEnd的参数要相同 console.timeEnd('test'); } getFunRunTime(); 控制台输出: test: 0.384765625ms 原

前端PHP入门-023-重点日期函数之程序执行时间检测

我们有的时经常需要做程序的执行时间执行效率判断. 实现的思路如下: <?php //记录开始时间 //记录结整时 // 开始时间 减去(-) 结束时间 得到程序的运行时间 ?> 可是大家不要忘了,程序的运行速度太快了.快到只有0.00000几秒的一刹那.那这个时候大家要记录一个特函的函数了: mixed microtime ([ bool $get_as_float ] ) microtime()这个函数,能够返回当前 Unix 时间戳和微秒数. 参数: 如果你传入true的话,将会返回一个浮

C++/C 获取系统时间,获取程序执行时间

个人觉得第二种还是比较实用的,而且也是最常用的~ 不过当计算算法耗时的时候,不要忘记second,不能只要用Milliseconds来减,不然后出现负值,若是算法耗时太长就得用minutes啦.再不然,就hours…… //方案— 优点:仅使用C标准库:缺点:只能精确到秒级 #include <time.h> #include <stdio.h> int main( void ) {     time_t t = time(0);     char tmp[64];     str

java获取程序执行时间

第一种是以毫秒为单位计算的. //伪代码 long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); //测试的代码段 long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ms"); //伪代码 long startTime=System.currentTime

C语言之fileno()函数--获取已经打开的文件的文件描述符(小技巧)

open函数相关的:  /* open 是系统调用 返回的是文件句柄*/ #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); fopen函数相关的:   /* open是ANSIC标准中的C语言库函数,在不同的系统中应该调用不同的内核api  */ FILE

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

1.问:知道程序执行时间我们能够做什么? 在<C++应用程序性能优化>一书中,假设大家读过相信大家一定对性能优化这一块很上心,文中总是对优化前后的时间对照很直观给我们一个感受. 那么我们怎样利用C语言提供的库函数获取一个应用程序的各阶段的执行效率,通过数据分析出该程序的瓶颈而且做出对应的优化. 本文给大家解说的clock()函数. 2.我们首先看一看C/C++标准文档对于clock()函数的解说 3.函数原型 clock_t clock (void); 函数返回值 clock()返回从&quo

C 语言 clock() 函数,例:计算多项式值

C 语言 clock() 函数,例:计算多项式值 /** * clock(): 捕捉从程序开始运行到 clock() 被调用时所耗费的时间. * 这个时间单位是 clock tick, 即"时钟打点". * 常数 CLK_TCK: 机器时钟每秒所走的始终打点数. * In Macintosh or C99, CLK_TCK == CLOCKS_PER_SEC * http://www.cplusplus.com/reference/ctime/CLOCKS_PER_SEC/ */ 为了

delphi根据进程PID获取程序所在路径的函数(用OpenProcess取得句柄,用GetModuleFileNameEx取得程序名)

uses psapi; {根据进程PID获取程序所在路径的函数}function GetProcessExePath(PID: Cardinal): string;varpHandle: THandle;buf: array[0..MAX_PATH] of Char;begin{获取进程句柄}pHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PID);{获取进程路径}GetModuleFileN

黑马程序员——c语言学习心得——函数传递二维数组

黑马程序员——c语言学习心得——函数传递二维数组 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.定义指针的时候一定要初始化.   变量定义的时候给变量初始化,这是保证不出错的一个很好的习惯.尤其是在指针的使用上,如果我们没有给指针初始化,就会出现野指针,该指针的指向并不是我们所希望的,一旦错误的释放了这个指针,就会发生内存的访问.那么如何初始化指针变量呢,一般有以下几种方法:   1.初始化空指针   int* pInteger=N