要求用最低的cpu消耗。我想预测运算共花多少时间,cpu使用很高,所以想在运算前就能统计本次运算预计用多少时间,我先统计一次运算的ms时间,再乘以运算次数。

解决方案 »

  1.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/gettickcount.asp
      

  2.   

    执行前
    DWORD dwStart = GetTickCount();
    结束时
    DWORD dwEnd = GetTickCount();
    dwEnd - dwStart 就是毫秒时间
      

  3.   

    Header Declared in Winbase.h; include Windows.h.
     
    Library Link to Kernel32.lib.
     
      

  4.   

    QueryPerformanceFrequency 
    QueryPerformanceCounter
      

  5.   

    看看这个,延迟毫秒
    void gf_Delay( int ms)//ms delay
    { LARGE_INTEGER litmp; 
           LONGLONG QPart1,QPart2;
           double dfMinus, dfFreq, dfTim; 
           QueryPerformanceFrequency(&litmp);
           dfFreq = (double)litmp.QuadPart;// 获得计数器的时钟频率
           QueryPerformanceCounter(&litmp);
           QPart1 = litmp.QuadPart;// 获得初始值
           do
           {
              QueryPerformanceCounter(&litmp);
              QPart2 = litmp.QuadPart;//获得中止值
              dfMinus = (double)(QPart2-QPart1);
              dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒
           }while(dfTim*1000 < ms);}
      

  6.   

    其实你这样得到的值并不是一个真实值,应该可以说是个错误值,应为cpu在不断的切换时间片,你每次得到的值都不一样,而且你的算法时间那么短,不过要求低的话也无关大雅。。