【c++基础】程序运行时间计时

发布时间 2023-04-29 22:45:29作者: 乞力马扎罗山的雪

使用std::chrono计算程序运行时间

#include <iostream>
#include <string>
#include <chrono>

void Run()
{
	for (int i = 0; i < 1000000000; ++i)
	{

	}

}

int main()
{
	auto beforeTime = std::chrono::steady_clock::now();
	
	Run();

	auto afterTime = std::chrono::steady_clock::now();

	std::cout << "总耗时:" << std::endl;
	//秒
	double duration_second = std::chrono::duration<double>(afterTime - beforeTime).count();
	std::cout << duration_second << "秒" << std::endl;

	//毫秒级
	double duration_millsecond = std::chrono::duration<double, std::milli>(afterTime - beforeTime).count();
	std::cout << duration_millsecond << "毫秒" << std::endl;

	//微妙级
	double duration_microsecond = std::chrono::duration<double, std::micro>(afterTime - beforeTime).count();
	std::cout << duration_microsecond << "微秒" << std::endl;

	//纳秒级
	double duration_nanosecond = std::chrono::duration<double, std::nano>(afterTime - beforeTime).count();
	std::cout << duration_nanosecond << "纳秒" << std::endl;

	getchar();
	return 0;
}

另一种:

#include <chrono>

auto start_time = std::chrono::high_resolution_clock::now(); // 记录开始时间

// 执行计算程序

auto end_time = std::chrono::high_resolution_clock::now(); // 记录结束时间

auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end_time - start_time); // 计算时间差

std::cout << "程序运行时间:" << duration.count() << " 微秒" << std::endl; // 输出程序运行时间

// 这段代码中,首先使用 std::chrono::high_resolution_clock::now() 函数记录程序开始时间和结束时间,
// 并使用 std::chrono::duration_cast 函数计算时间差。
// 最后使用 duration.count() 函数获取时间差的微秒数,以便输出程序运行时间。