gpt4 book ai didi

c++ - 测量耗时,将开始时间存储为原始类型

转载 作者:行者123 更新时间:2023-12-05 01:25:55 26 4
gpt4 key购买 nike

  1. 我需要测量耗时(以毫秒为单位)

  2. 我需要将开始时间存储为原始类型

  3. 在进行比较以确定已经过去了多少时间时,我需要将开始时间作为原始类型检索

有什么建议吗?

我有 C++17,不想使用任何外部库(如 boost)。

std::chrono 如果有人可以向我解释如何将耗时转换为基元或从基元转换过来,那就太好了。我不太擅长 C++。

分辨率精度并不重要..如果有几十毫秒的偏差也没关系,我只需要实现一个延迟..例如100毫秒或1.5秒

最佳答案

因为您要存储开始时间,所以应该使用 std::chrono::system_clock 。它的纪元是稳定的,不会随时间而改变。其他std::chrono时钟的纪元可能会在程序运行之间发生变化,因此一次运行存储的时间点和后续运行读回的时间点可能不一致。

获取当前时间(以毫秒为单位):

auto now = std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now());

我喜欢使用 using 指令或命名空间别名来使此类代码不那么冗长:

using namespace std::chrono;
auto now = time_point_cast<milliseconds>(system_clock::now());

要转换now转换为有符号 64 位整数类型:

auto now_i = now.time_since_epoch().count();

要转换now_i回到time_point :

time_point<system_clock, milliseconds> prev{milliseconds{now_i}};

比较 time_points:

if (now > prev)
...

以上所有内容都在标题 <chrono> 中:

#include <chrono>

关于c++ - 测量耗时,将开始时间存储为原始类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70595264/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com