1.头文件:
#include <iostream>
:用于控制台输入/输出。#include <chrono>
:用于时间点和持续时间计算。
2.计时器结构:
- 包含
start
、end
和duration
成员:
start
和end
是表示计时器开始和结束的时间点。duration
是end
和start
之间的时差。
- 构造函数:
- 使用创建结构对象时的时间设置
start
为当前时间。std::chrono::high_resolution_clock::now()
- 析构函数:
Timer
当对象超出范围时自动调用。- 设置
end
为当前时间并计算和start
之间的差值。 - 转换
duration
为毫秒并将经过的时间打印到控制台。
3.Function:
- 声明一个
Timer
对象,启动计时器。 - 包含一个打印“Hello\n”100 次的循环。
- 当函数结束时,
Timer
对象超出范围,触发其析构函数来测量和打印经过的时间。
4.main功能:
- 调用
Function
,其中的计时器测量循环的执行时间。 - 等待用户输入(
std::cin.get()
)以保持控制台打开。
#include <iostream>
#include <chrono>
struct Timer
{
std::chrono::time_point<std::chrono::steady_clock>start,end;
std::chrono::duration<float> duration;
Timer()
{
start = std::chrono::high_resolution_clock::now();
}
~Timer()
{
end = std::chrono::high_resolution_clock::now();
duration = end - start;
float ms = duration.count() * 1000.0f;
std::cout << "Timer took" << ms << "ms" <<std::endl;
}
};
void Function()
{
Timer timer;
for(int i = 0;i < 100;i++)
std::cout << "Hello\n";
}
int main()
{
Function();
std::cin.get();
}