如何计算一段代码的执行时间,前面已经有很多类似的帖子,但我还是有许多地方不明白.特再向高手请教,谢谢!
1.
DWORD dwStart=GetTickCount();
这里DWORD和GetTickCount()在什么库中?
2.
float t1,t2,t;
t1=clock();
.....
t2=clock();
printf("%f\n",t2-t1);
为什么结果总为0?
3.
time_t t1,t2;
double t;
t1=time();
.....
t2=time();
t=(double)(t2-t1);
printf("%f\n",t);
为什么结果还是不正确?并且运行的次数越多时间也越长?
是不是结果应该是一个常数?
1.
DWORD dwStart=GetTickCount();
这里DWORD和GetTickCount()在什么库中?
2.
float t1,t2,t;
t1=clock();
.....
t2=clock();
printf("%f\n",t2-t1);
为什么结果总为0?
3.
time_t t1,t2;
double t;
t1=time();
.....
t2=time();
t=(double)(t2-t1);
printf("%f\n",t);
为什么结果还是不正确?并且运行的次数越多时间也越长?
是不是结果应该是一个常数?
解决方案 »
- vc对于文字数字字母混合的语句如何竖着输出来!
- 问一个关于tab控件的问题,希望大家帮忙。(急!)
- 关键词,SOCKET,connect,多线程
- 小弟初学tcp/ip,请给点帮助!!!!!(参与有分)
- 请问一个.ocx控件在VC里面怎么用啊?
- 谁能提供svga端口的资料,注意io级的。回答有效再加100分,提供线索都有分!
- 怎样将金山词霸的词典内容转换成通用数据库格式(如ACCESS或dbf)或纯文本文件?
- 在listctrl中添加新的item,如何添加后使新的item处于选择状态?
- 如何获得图形数据
- 为什么我的activex控件不能通过html中的param传参数呢?少了什么?谢谢大家!
- 数据采集、处理无法实时。因为处理数据的程序速度慢,我开了两个线程,一个实时采集,采集速度很快,另一个处理数据
- 静态变量分配问题
2 用下面的代码试试:
#include <stdio.h>
#include <time.h>void main()
{
float t1,t2,t;
t1=clock();
Sleep(1500); //这里人为地延时1.5秒
t2=clock();
printf("%f\n",t2-t1);
}
#include <time.h>void main()
{
time_t t1,t2;
double t;
t1=time(NULL); //这里要加上参数NULL,且time函数只支持整数的秒,即返回的值单位是秒
Sleep(5000);
t2=time(NULL);
t=(double)(t2-t1);
printf("%f\n",t);
}
再问一下:
sleep(1500)里的1500单位是什么?是秒吗?结果是1500吗?
为什么我的结果总不是一个确定的数呢?结果的单位是什么?
另外如果用来测试实际的一段代码,比如for循环等,为什么
运行一次结果就增加一点?结果是不是应该在某个值附近摆动?
谢谢
--------------------------------------------
里面的参数单位为毫秒,让系统在这里歇1.5秒,什么也不做。后面的一问嘛,你可以把测试的代码贴上来,结合起来分析容易一些。
dosomething();
time=GetTickCount()-time;
float ftime=((float) time)/1000;
ftime就是你要的时间.
piaochen_2002(飘尘)和lzzqqq(Jonersen)两位朋友说的GetTickCount()函数计算方法倒是大家常用的。