如何衡量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
。所以我无法通过总结个别时间来计算时间。解决方案是什么?
答案 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;
}