c++程序执行时间显示为0

部分:#include<ctime>clock_tStart,Finish;//计时用Start=clock();循环体Finsh=clock();double(Fini... 部分:
#include<ctime>
clock_t Start,Finish;//计时用
Start=clock();
循环体
Finsh=clock();
double(Finish-Start)/CLOCKS_PER_SEC;可是显示的是0,这是为什么呢?
展开
 我来答
松甜恬0Je4ba
2011-08-30 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3427万
展开全部
可能是你的机器太好了,运行的快,运行下面的试试:

#include “stdio.h”
#include “stdlib.h”
#include “time.h”
int main( void )
{
long i = 10000000L;
clock_t start, finish;
double duration;
/* 测量一个事件持续的时间*/
printf( "Time to do %ld empty loops is ", i );
start = clock();
while( i-- ) ;
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf( "%f seconds"n", duration );
system("pause");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6e0c619
2011-08-30 · TA获得超过503个赞
知道小有建树答主
回答量:315
采纳率:0%
帮助的人:382万
展开全部
clock 的精度不高只到毫秒
所以当你循环的次数少了的时候就几乎为0了
还有就是你的输出格式精度达到没
追问
程序执行是很快,那有更精确些的方法吗?
追答
我在linux下用过几十微秒级别的貌似
win下面 我基本都用毫秒的
再往下深究就没多大意义了,毕竟可以多跑几次统计结果算出来效率的:)
楼下的纳秒,不实际吧,貌似 win下面基本到50微秒就极限了列,我也不很懂,你可以试试楼下的 或者 搜索下 C++微秒
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wildkey
2011-08-30 · TA获得超过195个赞
知道答主
回答量:74
采纳率:100%
帮助的人:115万
展开全部
纳秒级的

#include <iostream>
using namespace std;
inline unsigned __int64 GetCycleCount()
{
__asm _emit 0x0F
__asm _emit 0x31
}
int main()
{
unsigned long t1,t2;
t1 = (unsigned long)GetCycleCount();
for(int i=0;i<10;i++);
t2 = (unsigned long)GetCycleCount();
cout<<t2-t1<<endl;
getchar();
return 0;
}
追问
我带进自己的程序,结果是38330105,单位是ns?
追答
是的。1秒10亿纳秒
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sjtuzjt
2011-08-30 · 超过18用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:58.2万
展开全部
恩。运行太快了。你可以多做点循环试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
123songmingzhu
2011-08-30 · TA获得超过309个赞
知道小有建树答主
回答量:436
采纳率:0%
帮助的人:261万
展开全部
机器运行太快了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式