如何测算函数运行时间
每次要测了,我都百度一串代码复制粘贴到我的代码中,时间长了我依然记不得,到底怎么测算的,大概是用clock_t啥之类的吧
这次我来找一个比较精准的测算方法。
chrono库
这个库比较神秘,但是我上网查阅资料之后把它封装成一个类了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <chrono> // for std::chrono functions
class Timer
{
private:
// Type aliases to make accessing nested type easier
using clock_t = std::chrono::high_resolution_clock;
using second_t = std::chrono::duration<double, std::ratio<1> >;
std::chrono::time_point<clock_t> m_beg;
public:
Timer() : m_beg(clock_t::now())
{
}
void reset()
{
m_beg = clock_t::now();
}
double elapsed() const
{
return std::chrono::duration_cast<second_t>(clock_t::now() - m_beg).count();
}
};
|
之后通过如下方法来直接使用
1
2
3
4
5
6
7
|
int main()
{
Timer t;
// Code to time goes here
std::cout << "Time elapsed: " << t.elapsed() << " seconds\n";
return 0;
}
|