随笔 - 89  文章 - 118  trackbacks - 0
<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

留言簿(16)

随笔分类(56)

随笔档案(89)

文章分类

推荐博客

搜索

  •  

最新随笔

最新评论

阅读排行榜

1000毫秒为一秒,毫秒可能是能够取到的最小的时间单位了,代码如下:


1 DWORD startTime = GetTickCount();
2 // do something
3 DWORD totalTime = GetTickCount() - startTime;

看到楼下两们仁兄的发言,我找了一下资料,如下的代码可以取得更为精确的时间值:

 1 // 取得时钟频率
 2 LARGE_INTEGER  litmp ;
 3 QueryPerformanceFrequency(&litmp);
 4     
 5 LARGE_INTEGER  start;
 6 QueryPerformanceCounter(&start) ; 
 7 
 8 //do something
 9 
10 LARGE_INTEGER  end;
11 QueryPerformanceCounter(&end) ; 
12
13 double dTotalTime = (double)(end.QuadPart-start.QuadPart) / (double)litmp.QuadPart;    //秒
14 

posted on 2008-02-27 10:42 胡满超 阅读(9790) 评论(4)  编辑 收藏 引用

FeedBack:
# re: VC中取得毫秒级的时间 2008-02-27 11:24 loverene
查查这个函数
QueryPerformanceCounter  回复  更多评论
  
# re: VC中取得毫秒级的时间 2008-02-27 11:52 空明流转
x86上可以用RDTSC计时戳。  回复  更多评论
  
# re: VC中取得毫秒级的时间 2008-02-29 08:20 Enoch
理论上还可以获取毫秒以下级的时间单位吧,这个与CPU的频率有关系,不知道有没有办法。也许在应用级真的无法获取。  回复  更多评论
  
# re: VC中取得毫秒级的时间 2008-04-22 19:32 greatws
第二种方法可能有问题,比如说现在很多主板都有CPU频率自动调整功能,主要是节能,尤其在笔记本上,你这样除下来不能保证精确性  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理