具体怎么算,我的程序多少时间完成

解决方案 »

  1.   

    以前在写DOS的汇编程序时,可以根据语句的时钟周期计算运行时间。在Windows下,再这样算就不太可能了,首先是多任务,各个进程共享CPU,其次,高级语言的代码也没提供执行时间说明。通常可以这样算:
    DWORD dwStart = ::GetTickCount();
    //执行你代码
    DWORD dwResult = ::GetTickCount()-dwStart;
    此时得到的dwResult大致表示了代码的执行时间,单位毫秒(1000分之一秒)。
      

  2.   

    你需要一个高精度的计时器:
    //初始化
    union _LARGE_INTEGER counts,counte,freq;
    ::QueryPerformanceFrequency(&freq);
    ::QueryPerformanceCounter(&counts);
    //进行计时的代码开始
    //计时程序代码结束
    ::QueryPerformanceCounter(&counte);
    __int64 lcount=counte.QuadPart-counts.QuadPart;
    __int64 lfreq=freq.QuadPart;
    double a=lcount/(double)lfreq;
    CString szRllTime;
    szRllTime.Format("RunTime=%1.10f\n",a);
    //显示结果
    AfxMessageBox(szRllTime);

      

  3.   

    调用前后使用GetTickCount获得时间其差值就是您想要的