【发布时间】:2018-04-11 08:08:24
【问题描述】:
t_start = std::chrono::high_resolution_clock::now();
t_end = std::chrono::high_resolution_clock::now();
long t = t_start; //error
此外,我无法将 t_start 与 t_end 一起添加。
t_start += t_end; //error
【问题讨论】:
-
不要存储太久。将其存储为
std::chrono::high_resolution_clock::time_point。你到底想做什么。 -
我正在尝试计算每次调用函数时的挂墙时间。
-
为什么要加两个时间点?时间之间的差异通常很重要。你能详细解释一下你的预期用途吗?
-
我用这个函数来计算挂墙时间,但是对于多线程环境我想改变它来计算挂墙时间和cpu时间。对于 cpu 时间,我使用 std::clock 和墙上时间 std::chrono micro。对于这个程序,我在启动程序时计算两个时间,而不是每当我调用这个函数来计算 void get_wall_time(uintmax_t* wall_time, long* wall_time_ns) { clock_gettime(CLOCK_MONOTONIC, &ts); *wall_time = uintmax_t(ts.wall_time); *wall_time_ns = ts.wall_time_ns; }