c语言获取函数运行时间 c语言获取函数运行时间怎么写

求C语言程序:如何获得一个程序运行的时间? 最好带一段简单的代码 新人学不懂 呵呵 谢谢大家啦

clock()函数,计算代码消耗的cpu时间,一般用处不大

创新互联公司拥有十载成都网站建设工作经验,为各大企业提供做网站、网站建设服务,对于网页设计、PC网站建设(电脑版网站建设)、重庆APP开发公司、wap网站建设(手机版网站建设)、程序开发、网站优化(SEO优化)、微网站、域名与空间等,凭借多年来在互联网的打拼,我们在互联网网站建设行业积累了很多网站制作、网站设计、网络营销经验,集策划、开发、设计、营销、管理等网站化运作于一体,具备承接各种规模类型的网站建设项目的能力。

time()函数,获取系统时间,许多依赖于time()计算超时的程序,在修改系统时间后一般都不能正常运行。

因此本人推荐:

windows下:计算绝对时间QueryPerformanceCount/QueryPerformanceFrequency.

cpu脉冲计数/ cpu频率,获得开机以来的秒数。

当然,这两个函数获得时间精度是很高的(us级别),只是我们一般用不到这么精确。

linux下:

#include sys/sysinfo.h

调用sysinfo()获得系统启动以来经历的秒数时间。这个不属于高精度计时。

如果要进行高精度计时,高精度时间,C运行库的gettimeofday().(当然据我估计也是受到系统更改时间的影响)。

用绝对时间判断系统时间有没有被更改,用高精度时间精确计时,二者结合才是王道。

那位高手知道C语言中如何查看程序运行时间

获取程序运行时间:

在time.h里有函数clock();本身这个函数取得的时间好像是ms,要取得s就

写成clock()/CLOCKS_PER_SEC;但CLOCKS_PER_SEC是在time.h里定义的,如果没这个定义

那只能用clock();取得ms;这个函数的执行不会中途停止,如果是在windows系统下,因为它是

多任务系统,它需要在各任务之间切换,如果在测试过程中,执行其他程序,所其得的时间,就会

出现差别,还有windows运行速度相当快,对于小型的测试,所得的时间几乎为0,因此最好将

要测试的过程执行100次或以上,然后再将取得的时间执行次数;输出非常耗时间,没什么必要

的话,就不要输出

这是一个测试选择排序的程序

#include

stdio.h

#include

stdlib.h

#include

time.h

#define

M

1000

/*

执行次数

*/

#define

N

500

/*

数组大小

*/

void

SelectSort(int

*a,int

l,int

r)

{

int

i,j,v;

for

(i=0;ir;i++)

{

for

(j=i+1;j=r;j++)

{

if

(*(a+i)*(a+j))

v=*(a+i),*(a+i)=*(a+j),*(a+j)=v;

}

}

}

void

main()

{

int

a[N],i,j;

double

start,finish;

/*

开始时间,结束时间

*/

start=(double)clock();

/*

我的time.h内没有CLOCKS_PER_SEC

*/

for

(j=0;jM;j++)

{

/*

执行M次

*/

for

(i=0;iN;*(a+i++)=rand()%10);

/*

每次重新赋值

*/

SelectSort(a,0,N-1);

}

finish=(double)clock();

printf("%.4fms",(finish-start)/M);

getchar();

}

怎么用C语言来计算一个函数调用了多久

可以通过计算时间差的方法来计算一个函数调用了多久。

具体细节如下:

计算函数执行时间是评价程序效率的一种常用方法。

可以在调用一个函数之间获取当前时间,在调用之后再次获取当前时间,然后计算二者的时间差。

但是如果一个函数执行时间非常短,会得到两个时间差为0的情况,此时可以修改程序为调用该函数1000次,然后把时间差除以1000。

得到当前时间的方法是:首先程序最前面添加头文件#includetime.h,然后通过调用time(NULL)获取当前时间。

用c语言如何获取系统当前时间的函数?

1、C语言中读取系统时间的函数为time(),其函数原型为:\x0d\x0a#include \x0d\x0atime_t time( time_t * ) ;\x0d\x0atime_t就是long,函数返回从1970年1月1日(MFC是1899年12月31日)0时0分0秒,到现在的的秒数。\x0d\x0a2、C语言还提供了将秒数转换成相应的时间格式的函数:\x0d\x0a char * ctime(const time_t *timer); //将日历时间转换成本地时间,返回转换后的字符串指针 可定义字符串或是字符指针来接收返回值\x0d\x0a struct tm * gmtime(const time_t *timer); //将日历时间转化为世界标准时间(即格林尼治时间),返回结构体指针 可定义struct tm *变量来接收结果\x0d\x0a struct tm * localtime(const time_t * timer); //将日历时间转化为本地时间,返回结构体指针 可定义struct tm *变量来接收结果\x0d\x0a3、例程:\x0d\x0a#include \x0d\x0avoid main()\x0d\x0a{\x0d\x0a time_t t;\x0d\x0a struct tm *pt ;\x0d\x0a char *pc ;\x0d\x0a time(t);\x0d\x0a pc=ctime(t) ; printf("ctime:%s", pc );\x0d\x0a pt=localtime(t) ; printf("year=%d", pt-tm_year+1900 );\x0d\x0a}\x0d\x0a\x0d\x0a时间结构体struct tm 说明:\x0d\x0a\x0d\x0astruct tm { \x0d\x0a int tm_sec; /* 秒 _ 取值区间为[0,59] */ \x0d\x0a int tm_min; /* 分 - 取值区间为[0,59] */ \x0d\x0a int tm_hour; /* 时 - 取值区间为[0,23] */ \x0d\x0a int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */ \x0d\x0a int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */ \x0d\x0a int tm_year; /* 年份,其值等于实际年份减去1900 */ \x0d\x0a int tm_wday; /* 星期 _ 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */ \x0d\x0a int tm_yday; /* 从每年的1月1日开始的天数 _ 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */ \x0d\x0a int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/ \x0d\x0a};


分享文章:c语言获取函数运行时间 c语言获取函数运行时间怎么写
网站地址:http://azwzsj.com/article/dopojds.html