linux clock函数使用方法
C语言中求程序执行的时间可以使用clock()函数,_CRTIMP clock_t __cdecl __MINGW_NOTHROW clock (void);(可以把它直接视为clock_t clock(void);)
这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,其中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。
下面给出一个示例:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
long i=10000000L;
clock_t start,finish;
double TheTimes;
printf("做%ld次空循环需要的时间为",i);
start=clock();
while(i--);
finish=clock();
TheTimes=(double)((finish-start)/CLOCKS_PER_SEC);
printf("%f秒。\n",TheTimes);
return 0;
}
可是运行完每次的结果都为:
做10000000次空循环需要的时间为0.000000秒。
Process returned 0 (0x0) execution time : 0.438 s
Press any key to continue.
加大循环次数也不行。
最后终于找到的问题所在:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
long i=10000000L;
clock_t start,finish;
double TheTimes;
printf("做%ld次空循环需要的时间为",i);
start=clock();
while(i--);
finish=clock();
TheTimes=(double)(finish-start)/CLOCKS_PER_SEC;
printf("%f秒。\n",TheTimes);
return 0;
}
看红色行和上面的区别,现在明白了吧!是由于括号运算符改变了运算的优先级,将里面的四则运算变成了整数之间的除法,造成位数被舍去,造成的误差。
原文链接:https://blog.csdn.net/wangluojisuan/article/details/7043667
linux clock函数使用方法相关推荐
- linux clock命令使用方法,Linux dateclock命令
Linux系统手动更改时间可以用date命令,具体可以man date查看详细使用方法 格式:date mmddHHMM 就是"月日时分" 格式:dat ...
- Linux open函数使用方法记录
1.作用 linux一切皆文件,那么如何打开文件,靠的就是open函数.打开和创建文件,对于文件来说存在文件则打开,不存在则创建:对于设备,可以打开相应设备(串口,SPI,I2C等). 2.函数原型 ...
- linux sysinfo函数使用方法--获取内存大小
http://hi.baidu.com/%C0%CB%C2%FE%B5%C4%D0%A1%D0%AB%D7%D3/blog/item/1a3fef35202d4344251f1430.html Lin ...
- linux deamon函数使用方法说明
转自http://blog.chinaunix.net/uid-20196318-id-94985.html 其实,linux提供了daemon函数用于创建守护进程 #include int daem ...
- linux获取当前内存函数,linux sysinfo函数使用方法--获取内存大小
http://hi.baidu.com/%C0%CB%C2%FE%B5%C4%D0%A1%D0%AB%D7%D3/blog/item/1a3fef35202d4344251f1430.html Lin ...
- python的clock函数,Python3 time clock()方法
Python3 time clock()方法 描述 Python 3.8 已移除 clock() 方法 可以使用 time.perf_counter() 或 time.process_time() 方 ...
- python中clock函数_Python time clock()方法
Python time clock()方法 描述 Python 3.8 已移除 clock() 方法 可以使用 time.perf_counter() 或 time.process_time() 方法 ...
- c++ linux 获取毫秒_Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间
使用Linux的gettimeofday函数可以达到获取精确到毫秒级的时间,其中t1=t_start.tv_sec是公元1970年至今的时间(换算为秒),t2=t_start.tv_usec是当 前秒 ...
- linux打印函数名,linux kernel 打印函数指针对应的函数名方法
linux kernel 打印函数指针对应的函数名方法 内核中函数指针用的很多,在debug 的时候能直接打印出一个函数指针对应的函数就会很方便. 打印裸指针(raw pointer)用 %p,%p除 ...
最新文章
- 创建Swap交换空间
- for语句联系 -小九九乘法表
- Android开发工具GenyMotion安装和使用方法
- ImportError: cannot import name ‘python_2_unicode_compatible‘
- 细说flush、ob_flush的区别
- IdentityServer4实战 - 基于角色的权限控制及Claim详解
- 使用Zuul和Spring Boot创建API网关
- sqlmap地表最强sql注入检测工具学习使用
- 华为2018年收入超阿里腾讯总和,任正非:华为最大问题是赚钱太多
- maven配置项目根路径_Maven基本概念——根目录、项目创建、坐标
- com.mysql.jdbc.PacketTooBigException,及mysql 设置 max_allow_packet
- 逻辑运算map函数filter函数reduce函数
- GStreamer入门概念(二)
- 咏南中间件D7客户端演示
- ios怎么引入masonry_iOS-Masonry的简单使用
- mx350显卡天梯图_2019.8月CPU和显卡性能天梯图
- bulk interface驱动_USB驱动程序(较详细)一
- linux mint 下载迅雷安装包,Linux Mint如何安装“微信、QQ、迅雷、WPS办公软件”等国内上瘾软件...
- 香港城市大学赵翔宇招收AI机器学习数据挖掘 全奖PhD/博后/RA
- 计算机电脑怎么改皮肤,终极:如何更改计算机鼠标的皮肤
热门文章
- 建立屡获殊荣的单页网站的5个核心要素
- H264和音频流打包成PS流 (MPEG2-PS)
- 判断点是否位于多边形内(包含凹多边形)
- NineoldAndroids动画库源码分析
- 如何解决Not able to find Java executable or version. Please check your Java installation?
- Elaticsearch安装越南语分词器
- 《天天向上》聚焦首个碳中和主题公园 | 北京温榆河公园
- 计算机教育部第四次学科评估结果,权威重磅!教育部公布全国第四轮学科评估结果!...
- vue配置生产环境.env.production、测试环境.env.development
- 三星s8刷机包android11版本,番茄花园ROM|三星S8 ROM|三星G9500 ROM