随笔 - 17  文章 - 44  trackbacks - 0
<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

留言簿(2)

随笔档案(17)

文章分类

推荐博客

最新评论

阅读排行榜

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 胡满超 阅读(1823) 评论(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频率自动调整功能,主要是节能,尤其在笔记本上,你这样除下来不能保证精确性  回复  更多评论
  

标题  
姓名  
主页
验证码 *
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
[使用Ctrl+Enter键可以直接提交]
相关链接:
网站导航: