C_使用clock()函数获取程序执行时间
clock():捕捉从程序开始运行到clock()被调用时所耗费的时间。这个时间单位是clock tick ,即“时钟打点”。
常数CLK_TCK:机器时钟每秒所走的时钟打点数。
#include <stdio.h>
#include <time.h> colck_t start, stop;
/* clock_t 是clock() 函数返回的变量类型*/ double duration;
/* 记录被测函数运行时间,以秒为单位*/ int main()
{
/*不在测试范围内的准备工作写在clock()调用之前*/
start = clock(); /* 开始计时 */
MyFunction(); /* 把被测函数加在这里 */
stop = clock(); /* 停止计时 */
duration = ((double)(stop - start))/CLK_TCK; /* 其他不在测试范围的处理写在后面,eg:输出duration的值*/
}
实验_eg:执行下面打印一次“Hello World!”的时间
注意:因为程序执行的太快,所以显示为0;
#include <stdio.h>
#include <time.h>
void hello();
int main(){
clock_t start, stop;
double duration;
start = clock();
hello();
stop = clock();
duration = ((double)(stop - start))/CLK_TCK;
printf("该程序运行的时间是:%f\n",duration);
return ;
}
void hello(){
printf("Hello World!\n");
}

解决方案:让被测函数重复运行充分多次,使得测出的总的时钟打点间隔充分长,最后计算被测函数平均运行的时间。
#include <stdio.h>
#include <time.h> #define MAXK 1e5 /* 被测函数最大重复调用次数 */ void hello();
int main(){
int i;
clock_t start, stop;
double duration;
start = clock();
for(i=; i<MAXK; i++){
hello();
}
stop = clock();
duration = ((double)(stop - start))/CLK_TCK/MAXK; printf("duration = %f\n",duration);//0.00003s左右
return ;
} void hello(){
printf("Hello world!");
}

C_使用clock()函数获取程序执行时间的更多相关文章
- 前端PHP入门-023-重点日期函数之程序执行时间检测
我们有的时经常需要做程序的执行时间执行效率判断. 实现的思路如下: <?php //记录开始时间 //记录结整时 // 开始时间 减去(-) 结束时间 得到程序的运行时间 ?> 可是大家不 ...
- java获取程序执行时间
第一种是以毫秒为单位计算的. //伪代码 long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); //测试的代码段 lon ...
- Unix/Linux环境C编程新手教程(22) C/C++怎样获取程序的执行时间
1.问:知道程序执行时间我们能够做什么? 在<C++应用程序性能优化>一书中,假设大家读过相信大家一定对性能优化这一块很上心,文中总是对优化前后的时间对照很直观给我们一个感受. 那么我们怎 ...
- delphi根据进程PID获取程序所在路径的函数(用OpenProcess取得句柄,用GetModuleFileNameEx取得程序名)
uses psapi; {根据进程PID获取程序所在路径的函数}function GetProcessExePath(PID: Cardinal): string;varpHandle: THandl ...
- inux关于readlink函数获取运行路径的小程序
inux关于readlink函数获取运行路径的小程序 相关函数: stat, lstat, symlink 表头文件: #include <unistd.h> 定义函数:int re ...
- 程序运行时间测试 - 使用系统函数 getrusage 获取程序运行时间
https://github.com/yaowenxu/Workplace/blob/master/timer/getrusagetimer.c 关键结构体: struct rusage { stru ...
- 程序运行时间测试 - 使用libc 中 clock 函数
我们运行程序的时候,可以简单使用clock函数测试程序的运行时间:(本示例中以微秒为单位输出) https://github.com/yaowenxu/Workplace/blob/master/ti ...
- 微信小程序云开发-云函数-数据库和云函数获取数据的区别
一.数据库获取数据 1.1 数据库获取数据的写法 在本地创建的页面js文件中写代码 1.2 数据库获取数据返回数据限制20条 数据库获取数据,每次返回20条数据(数据库有108条数据) 1.3 数据库 ...
- 微信小程序云开发-云函数-调用初始云函数获取openid
一.调用初始云函数获取openid的两种方法 1.传统的success和fail 2.ES6的.then和.catch 3.编译结果 说明:初始云函数,是指刚创建完成的云函数.默认系统写的代码.
随机推荐
- Entity Framework入门教程(13)---EF中的高并发
EF中的高并发 这里只介绍EF6中database-first开发方案的高并发解决方案,code-first开发方案中的高并发会在以后的EF CodeFirst系列中介绍. EF默认支持乐观并发:我们 ...
- netCore2.0 Api 跨域(Cors)
1.在使用netCore2.0 使用WebApi的过程中涉及到了跨域处理. 在Microsoft.AspNetCore.All包中包含跨域Cors的处理,不必单独添加. 2.打开Startup.cs文 ...
- 树状数组BIT
模板1 #include<iostream> #include<cstdio> using namespace std; int n, m, c[500010]; inline ...
- mysql常见的问题
1.为什么选择某一个版本 各个版本之间的区别及优缺点 首先,服务器特性 mysql percona mysql mariaDB 开源 开源 开源 支持分区表 支持分区表 支持分区表 innodb Xt ...
- Centos 7 图形安装笔记(超详细)
1. 下载虚拟机(VMware Workstation Pro) 2. 安装虚拟机(Windows下安装虚拟机,自行网上搜索) 3. 下载Centos 7.4系统(国内建议使用阿里云: http:// ...
- requests.session
# -*- coding: utf-8 -*- """requests.session~~~~~~~~~~~~~~~~ This module provides a Se ...
- 《java与模式》
2012年3月 随笔档案 - java_my_life - 博客园--此网友 12年的博客都是和模式有关的,希望可以多看看.http://www.cnblogs.com/java-my-life/ar ...
- 【原创】大叔经验分享(5)oozie提交spark任务如何添加依赖
spark任务添加依赖的方式: 1 如果是local方式运行,可以通过--jars来添加依赖: 2 如果是yarn方式运行,可以通过spark.yarn.jars来添加依赖: 这两种方式在oozie上 ...
- iOS -- Effective Objective-C 阅读笔记 (5)
1: 理解 '对象等同性' 概念 理解: 根据'等同性' 来比较对象是一个非常有用的功能, 不过按照 == 操作符比较出来的结果未必是我们想要的, 因为该操作比较的是两个指针本身, 而不是其所指的对象 ...
- iOS制作自己的Framework框架
1.新建工程选择iOS —> Cocoa Touch Framework 2.进入工程将工程自带的文件干掉 3.导入自己所需的文件 4.4.TARGETS —> Build Setting ...