我正在测试我的同事提供的一段代码,我需要测量一个例程的执行时间,然后执行(线程的)上下文切换。
测量时间的最佳选择是什么?我知道这是可用的高分辨率计时器,
QueryPerformanceCounter
QueryPerformanceFrequency但是,如何将这些计时器转换为毫秒或纳秒呢?
发布于 2010-10-02 00:14:16
由于我正在执行的操作是500纳米的数量级,而定时器没有精度,所以我所做的是,
我用GetTickCount() -(使用~12milis的精度)节省了实际时间,并执行了一个路由N_TIMES (比例程执行的次数还多),直到我在控制台上按下某个按钮。
再次计算时间,并将差除以N_TIMES,如下所示:
int静态计数器;
无效例程(){ //此处的操作..counter++;}
int main(){
开始<- GetTickCount();处理<- createThread(.....,routine,...);
resumeThread(句柄);
getchar();
WaitForSingleObject(句柄,无限);
已用时间= (GetTickCount() -开始)* 1000000.0) /计数器;printf("Nanos:%d",已用时间);}
:)
https://stackoverflow.com/questions/3786918
复制相似问题