加载中…
个人资料
bjutqkleng
bjutqkleng
  • 博客等级:
  • 博客积分:0
  • 博客访问:1,483
  • 关注人气:6
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言获得0.01微秒级程序运行时间的方法

(2012-01-12 20:51:53)
标签:

精确时间

微秒级时间

c语言

程序运行时间

it

分类: 在学习

    辛苦了一个下午的时间,终于找到了C语言(非C++)中精确控制时间的方法,可以达到0.01微秒级。

    我们经常所用的clock_t方法,只能到毫秒级,而且在10ms以下将不再准确,对于更精确的程序时间计算来说,显然是不行的。通过硬件的方式,以及Windows的一些函数可以解决这个问题,需要用到:

    1、QueryPerformanceFrequency(&Freq);//获得当前的计数频率,即每秒进行多少次计数
    2、QueryPerformanceCounter(&limtp);//获取当前计数次数

这是一种基于cpu级的方法,获得时间为:
    (计数获取计数次数 - 开始获取计数次数)/(用QueryPerformanceFrequency获取的Freq.QuadPart)

为了更好地说明问题,通过程序来举例:

    QueryPerformanceFrequency(&nFreq);
    QueryPerformanceCounter(&t1);

      {statement section}
    QueryPerformanceCounter(&t2);
    dt = (t2.QuadPart - t1.QuadPart) / nFreq;
    printf("Running time : %g ms\t",dt);
部分内容省略,效果图如下:

 

http://s15/middle/9700e68dtb65482b3c20e&690


     如有转载,请注明出处:http://blog.sina.com.cn/bjutqkleng bjutqkleng@126.com

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有