gpt4 book ai didi

c++ - C/C++ - 模拟长时间运行的操作

转载 作者:搜寻专家 更新时间:2023-10-31 00:18:59 24 4
gpt4 key购买 nike

我正在分析在多个处理器上运行的并行算法。

但它很简单,所以我需要模拟一个长时间运行的操作来分析有效加速。

  1. sleep()/usleep() 不是一个选项。我需要让 CPU 保持忙碌,以便在其他从机 sleep 时从机程序无法工作。这里的加速是不正确的。

  2. 长空 for 循环是一种选择。但我也想明确设置操作时间。

有没有办法将这两者结合起来或使用其他方法来获得固定时间的长操作?

最佳答案

调用gettimeofday在进入循环之前记住时间。在循环中,调用 gettimeofday连续并计算当前时间和开始时间之间的差异。当差异足够大时,跳出循环。

本质上是这样的:

struct timeval tv_begin, tv_current;
gettimeofday(&tv_begin, NULL);

for (;;) {
gettimeofday(&tv_current, NULL);
unsigned long long diff =
(tv_current.tv_sec * 1000000 + tv_current.tv_usec) -
(tv_begin.tv_sec * 1000000 + tv_begin.tv_usec);

if (diff > TIMEOUT)
break;
}

关于c++ - C/C++ - 模拟长时间运行的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9157224/

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