我正在尝试使用GetTickCount()分别在一大段代码中计算多个函数,以找出确切的瓶颈所在。我可以成功计算整段代码。我正在努力解决的问题是在哪里可以添加计时功能来测量每个功能的时间。在声明函数或定义函数时,或者在调用函数的main()内插入计时器。 任何帮助将非常感激。 谢谢。
答案 0 :(得分:1)
在运行时调用它们时计时,例如:
int main(int argc, char** argv)
{
...
DWORD start = GetTickCount();
CallAFunction();
DWORD end = GetTickCount();
DWORD elapsed = (end >= start) ? (end - start) : ((MAXDWORD - start) + end);
...
}
衡量代码时序的更好方法是使用分析器而不是在代码本身中编写逻辑。探查器挂钩到运行时进程并在函数本身中插入自己的代码。然后它不仅可以跟踪函数运行多长时间,还可以跟踪它们被调用的次数,函数调用哪些函数,记录调用堆栈等等。所有这些都不需要编写任何额外的代码。