【发布时间】:2021-06-09 07:45:54
【问题描述】:
我需要在我的代码中添加一些人工延迟,而不使用std::this_thread::sleep_for() 来测试某些硬件。事实上,我需要一个类似的函数:
addLatency(10m) // Do dummy computation for 10 milli second
我知道一种可能的解决方案是进行如下虚拟计算:
long int j=0;
for (long int = 0; i < MAX_SIZE < i++)
j++;
但是,有没有更简单或合乎逻辑的方法来做到这一点? 我搜索了很多,可以找到很多提高性能的解决方案,但我找不到任何使性能最差的方法。
【问题讨论】:
-
你为什么不想使用
sleep_for? -
您想在这 10 毫秒内使用 100% 的处理器功率还是使用 0%?对于后者,您需要某种睡眠或等待功能。
-
我不能让进程进入睡眠状态,我必须使用处理能力。
-
如果你的编译器开启了优化,你的循环将被完全优化掉。
-
显而易见的方法是
while (steady_clock::now() < target_time) {}。
标签: c++ algorithm performance