C语言测试程序运行时间
来源:互联网 发布:曾梵志 知乎 编辑:程序博客网 时间:2024/06/05 16:42
一、clock_t和clock()
在标准C/C++中,最小的计时单位是一毫秒。C/C++在<time.h>中有计时函数clock(),与其相关的数据类型是clock_t。clock函数定义如下:
clock_t clock(void );
这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,可以找到它的定义,显然clock_t是一个长整型数。
#ifndef_CLOCK_T_DEFINED
typedef longclock_t;
#define_CLOCK_T_DEFINED
#endif
在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,用来表示一秒钟有多少个时钟计时单元,其定义如下:
#defineCLOCKS_PER_SEC ((clock_t)1000) //CLOCKS_PER_SEC为系统自定义的
可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。举例如下,可以用函数clock()/CLOCKS_PER_SEC来计算运行时间:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
clock_t start, finish;
start = clock();
finish = clock();
total_time = (double) (finish– start) / CLOCKS_PER_SEC;
printf(“%f seconds/n”,total_time);
}
二、struct timeval和gettimeofday()
struct timeval结构体在Linux系统中定义,在<time.h>中定义为:
structtimeval
{
__time_t tv_sec; /*Seconds. */
__suseconds_t tv_usec; /*Microseconds. */
};
其中,tv_sec为Epoch到创建structtimeval时的秒数,tv_usec为微秒数,即秒后面的零头。
gettimeofday ()功能是得到当前时间和时区,分别写到tv和tz中,如果tz为NULL则不向tz写入。
int gettimeofday(struct timeval*tv, struct timezone *tz);
其参数tv是保存获取时间结果的结构体,参数tz用于保存时区结果。它获得的时间精确到微秒(1e-6 s)量级。举例如下,使用gettimeofday计算代码执行时间:
#incluede<sys/time.h>
struct timevaltv_begin, tv_end;
gettimeofday(&tv_begin,NULL);
foo();
gettimeofday(&tv_end,NULL);
total_time = (double) (tv_begin.tv_usec – tv_end.tv_usec) / 1000;
printf(“%.3f ms/n”, total_time);
- C语言中测试程序运行时间
- C语言中测试程序运行时间
- C语言中测试程序运行时间
- C语言测试程序运行时间
- C语言测试程序运行时间
- C语言之测试程序运行时间
- 【C语言】测试程序运行时间
- 测试C程序运行时间
- C语言中测试程序运行时间(亲自测试过)
- C语言函数运行时间测试
- c语言测试代码运行时间
- C语言函数运行时间测试
- C/C++ 测试程序运行时间
- c/c++测试程序运行时间
- 测试C/C++程序运行时间
- 一起talk C栗子吧(第三十五回:C语言实例--测试程序运行时间)
- 计算程序的运行时间(c语言)
- C语言如何 计算程序运行时间?
- 云时代的分布式数据库:阿里分布式数据库服务DRDS
- noip2001 数的计算 (动态规划)
- UVA 568 - Just the Facts
- 总线设备驱动模型——platform篇
- HDU 2824 The Euler function【欧拉函数 打表】
- C语言测试程序运行时间
- 腾讯调酒大师全民农场下载 v1.8.0 安卓版
- 软工视频第一章
- POJ 3468 A Simple Problem with Integers(线段树区间修改)
- Atlassian JIRA 插件开发(一) — 环境准备
- JavaScript在线文本编辑的实现
- uva10271
- Html5的列表元素:ol dl
- Linux定时任务Crontab详解