【发布时间】:2018-10-30 00:33:21
【问题描述】:
我有一个函数,该函数需要根据机器上的负载进行调整,以准确消耗传递给函数的墙时间。该系数可能因机器负载而异。
void execute_for_wallTime(int factor, int wallTime)
{
double d = 0;
for (int n = 0; n<factor; ++n)
for (int m = 0; wall_time; ++m)
d += d * n*m;
}
有没有办法动态检查机器上的负载并相应地调整因子以消耗传递给函数的确切时间?
从文件中读取挂钟时间并传递给此函数。这些值以微秒为单位,例如:
73
21
44
【问题讨论】:
-
你认为你为什么需要
volatile? -
我猜你不能只是 nanosleep() for wallTime 微秒,而是需要执行操作。然后,您必须在函数启动和每次迭代时调用时钟,检查差异并与 walltime 进行比较,然后在时间到时返回。这是你想要做的吗?
-
@Attersson 是的,完全一样。我不想使用睡眠,我想执行操作。
-
@NeilButterworth 我删除了 volatile。我不知道为什么它甚至在那里。
-
除非你在 RTOS 上运行它,否则你想要的是不可能的。
标签: c++ function c++11 cpu wall-time