如何检查Visual Studio C ++中的函数运行时间?

时间:2013-12-10 03:56:33

标签: c++ visual-studio timing

我是2012年视觉工作室的新手,我想检查我的功能的速度。最好的方法是什么?我正在努力加快我的功能,我希望看到从执​​行到产生结果所需的时间。我很感激帮助。

2 个答案:

答案 0 :(得分:1)

可能没有好办法。根据您拥有的Visual Studio版本,它可能带有探查器支持,如果是这样,启用它,它会告诉您。

否则,请查看类似高性能计数器API的内容:http://msdn.microsoft.com/en-us/library/windows/desktop/ms644904%28v=vs.85%29.aspx

答案 1 :(得分:1)

除了使用其他帖子中提到的QueryPerformanceCounter之外,还有一些步骤可以帮助您更准确地衡量时间:

  1. 在开始时间测量之前调用Sleep(0)或SwitchToThread()。这将产生更可靠的测量结果,因为从Sleep()返回后不会立即发生上下文切换。如果函数很短并且在紧密循环中调用,则在循环之前调用Sleep,您希望在调用函数时CPU缓存保持为HOT。
  2. 通过SetThreadPriority和SetProcessPriorityBoost提高进程的优先级和/或进程的基本优先级。
  3. 将数千个结果存储在数组中,丢弃或忽略最差的5%(异常值)。在打印统计数据之前,对数组进行排序,以便更容易找到异常值。