用C ++测量函数调用的执行时间

时间:2016-06-23 06:19:23

标签: c++ windows execution-time boost-multi-index

如何衡量C++Windows中一行代码的执行时间。我正在插入大约1,00,000条记录boost::multi_index_container,如下所示:

while(...) //read a single record from a csv file until EOF
{
    ...
    while(...) // split the record into components based on delimiter
    {
        ...
    }
    //insert into boost::multi_index_container
} 

我需要找到插入所有记录所需的时间,但没有循环的执行时间。在插入函数之前启动timer或任何内容,并在函数调用之后计算经过的时间,结果为0 nanoseconds。所以我无法通过总结个别时间来计算时间。解决方案是什么?

2 个答案:

答案 0 :(得分:2)

在Windows上,您可以使用QueryPerformanceCounter获得准确的测量结果。

答案 1 :(得分:0)

How to calculate a time difference in C++可能重复。 有很多方法可以做到这一点。我喜欢的一个是使用计时器。

   #include <iostream>
   #include <chrono>

   using namespace std;
   using namespace std::chrono;



   int main()
  {
    high_resolution_clock::time_point t1 = high_resolution_clock::now();
    //your code here
    high_resolution_clock::time_point t2 = high_resolution_clock::now();

    auto duration = duration_cast<microseconds>( t2 - t1 ).count();

    cout << duration;
    return 0;
  }