Vc如何精确查询代码执行时间

通常查询时间的方法精度较低,只有大约30ms的精度,比如使用GetTickCount函数:

    DWORD s = GetTickCount();  
        //你的代码  
    s=GetTickCount() - s;   //毫秒数

如果需要很高时间精度的话,可以用如下方法查询代码执行时间:


    _int64   Frequency;  
    static _int64   lastTime = 0;  
    _int64   curTime;  
    double dTime = 0;  

    QueryPerformanceFrequency((LARGE_INTEGER   *)   &Frequency);  
    QueryPerformanceCounter((LARGE_INTEGER*)   &lastTime);

    //你的代码

    QueryPerformanceCounter((LARGE_INTEGER*)   &curTime);

    if(lastTime > 0 && curTime > 0 )
    {
        dTime = (double)(curTime - lastTime) / (double)Frequency;
    }


如果代码执行时间过短的话,还可以做个for循环,多执行几次取平均。总的来说,这种方法的精度可以达到毫秒级。

[本日志由 cnfgg 于 2009-06-26 05:41 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: vc 优化 代码执行时间
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.