博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

VC计算算法的CPU运行时间

Posted on 2007-07-12 22:52  Hello-Zhfen  阅读(1714)  评论(0编辑  收藏  举报

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

GetTickCount可以到1820ms进度 

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

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

 

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

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

       unsigned __int64 GetCycleCount(void)

       {

              __asm _emit 0x0F;

              __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.