最近编写了曲线处理算法,为评估算法的效率,参考了相关的资料:
GetTickCount可以到18-20ms进度
timeGetTime可以到1ms精度(在VC中没找到这个函数)
汇编指令:RDTSC (就是 ReaD TimeStamp Count) 精度可以达到ns级别
我在类头文件中加入下面的函数,不知道算不算是内联呢
// 获取算法CPU运行时间ns级
unsigned __int64 GetCycleCount(void)
{
__asm _emit 0x
__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中.