Timer计代码运行时间

发布时间 2023-10-18 21:08:28作者: iu本u

 

class Timer {
private:
	std::chrono::time_point<std::chrono::high_resolution_clock>m_StartTimepoint;
public:
	Timer() {
		m_StartTimepoint = std::chrono::high_resolution_clock::now();
	}
	void Stop() {
		auto EndTimepoint = std::chrono::high_resolution_clock::now();
		auto start = std::chrono::time_point_cast<std::chrono::microseconds>(m_StartTimepoint).time_since_epoch().count();
		auto end = std::chrono::time_point_cast<std::chrono::microseconds>(EndTimepoint).time_since_epoch().count();
		auto duration = (end - start) * 0.001;
		std::cout << (end - start) << "us" << "("<<duration << "ms)" << std::endl;
	}
	~Timer() {
		Stop();
	}
};

将以上代码写在要计时的代码作用域中,作用域结束,这个计时的类也会销毁,输出运行时间。

int value=0;
	{
		Timer timer;
		for (int i = 0; i < 10000; i++) 
			value+=2;
	}
	std::cout << value << std::endl;