当前位置:  -> 首页 -> 原创文章 -> C++下获取精确时间值

上一篇 | 下一篇
C++下获取精确时间值
作者:洛羽叶  点击率:3316  发布时间:2012-12-07
C++下为了计时获取时间值的方式有两种一种GetTickCount获取16毫秒精度自开机以来的秒数,45天左右重置一次,另外一种精确到微妙的利用系统时钟频率进行计算,性能每秒100000次以上。

long long GetUSTickCount()
{
    
long long count = 0;
    
long long current = 0;
    BOOL bResult = FALSE;

    
//获取时钟频率
    if (CPUFrequency == 0)
        ::QueryPerformanceFrequency((LARGE_INTEGER*)&CPUFrequency);

    
//获取计数值
    bResult = QueryPerformanceCounter((LARGE_INTEGER* )¤t);
    
    
//某些CPU不支持时直接采用低精度的GetTickCount
    if (bResult && CPUFrequency > 0)
        count = (
long long)(((double)current / CPUFrequency) * 1000 * 1000);
    
else
        count = (long long)::GetTickCount() * 1000;

    
return count;
}

 
标签: C++ GetTickCount QueryPerformanceFrequency
引用地址:本站原创
   站点首页      技术人生      旅途足迹      我要留言      友情链接      关于站长   
[本站统计]
在线人数:1
今日访问:889
总访问量:1468571
Copyright 2006-2022 EasyWeb 1.6 订阅 All Rights Reserved
粤ICP备08028977号-1
www.luoriver.com
Created by WWH in 2006