← 模式

测量执行时间

123456789101112#include <chrono> int main() { using clock = std::chrono::steady_clock; clock::time_point start = clock::now(); // 一个耗时的任务... clock::time_point end = clock::now(); clock::duration execution_time = end - start; }

此模式采用 CC0 公共领域贡献 许可。

要求 c++98 或更新版本。

意图

测量一段代码的执行时间。

描述

我们在第 5 行引入了类型别名 clock,使其指向 std::chrono::steady_clock 类型。这个类型表示一个单调(总是递增的)时钟。

在我们希望计时的任务之前和之后(分别在第 7 行第 9 行),我们调用静态成员函数 clock::now,它会返回一个 std::chrono::time_point,表示该函数被调用时的时间点。通过在第 11 行end 时间点减去 start 时间点,我们得到了一个 std::chrono::duration,它表示这两个时间点之间所经过的时间,也就是我们任务的执行时间。

我们可以通过调用 std::chrono::durationcount 成员函数来获取它的值。std::chrono::duration 的单位由它所来源的时钟决定,但可以通过 std::chrono::duration_cast 函数将其转换为具有不同单位的另一个 std::duration(或者如果单位可以精确整除,则可以隐式转换)。

贡献者

  • Joseph Mansfield

最后更新

2017年12月9日

来源

在 GitHub 上 Fork 此模式

分享