VC计算算法的CPU运行时间

最近编写了曲线处理算法,为评估算法的效率,参考了相关的资料:

GetTickCount可以到1820ms进度 

timeGetTime可以到1ms精度(VC中没找到这个函数)

汇编指令:RDTSC (就是 ReaD TimeStamp Count) 精度可以达到ns级别

 

我在类头文件中加入下面的函数,不知道算不算是内联呢

       // 获取算法CPU运行时间ns

       unsigned __int64 GetCycleCount(void)

       {

              __asm _emit 0x 0F ;

              __asm _emit 0x31;

       }

 

在程序中引用函数GetCycleCount()

                            //**获取算法运行CPU的时间CPUTime

                            unsigned long timeStmp = (unsigned long) GetCycleCount();

                           

                            //此处放置算法代码…..

 

                            //**计算CPU的运行时间CPUTime

                            timeStmp = (unsigned long) GetCycleCount() - timeStmp;

                            sprintf(sCPUTime,"运行时间: %f 毫秒",timeStmp/1000000.0);

输出结果放在字符串sCPUTime.

你可能感兴趣的:(VC计算算法的CPU运行时间)