C/C++-模拟长时间运行
C/C++ - Simulate long running operation
我正在分析一个在多个处理器上运行的并行算法。
但这是一个简单的操作,所以我需要模拟一个长期运行的操作来分析有效的加速。
-
sleep()/usleep(。我需要让CPU保持忙碌,这样当其他从属程序睡眠时,从属程序就无法工作。这里的加速是不正确的。
-
循环为长空是一种选择。但我也想明确地设置操作时间。
有没有办法将这两者结合起来,或者使用其他方法来获得固定时间的长操作?
在进入循环之前调用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;
}
getitimer()/settimer()。设置计时器,让SIGALRM的信号处理程序设置一个开关,使您脱离循环。循环做它所做的事情,或者什么都不做,直到计时器关闭。
相关文章:
- 正在等待在非阻塞文件描述符上长时间运行ioctl
- 如何在长时间运行的方法中等待信号?
- Lambda 捕获此函数和长时间运行的函数
- 为什么与Java和Python相比,使用Cmake运行C++程序每次都需要这么长时间?
- 在关闭应用程序期间正确关闭线程,该线程可能会运行很长时间的循环
- 对于长时间运行的程序,STL 内存管理是否"reliable"?
- 长时间运行的脚本的 symfony 执行
- C++linux应用程序在长时间运行后停止系统.如何找到原因
- 如果你以root用户身份运行这个C++程序,为什么它要花这么长时间才能完成
- 在 QThread 中运行长时间操作并将信号发送到主线程仍会冻结 UI
- 是否可以在谷歌测试运行中将测试标记为需要很长时间
- boost::asio::io_service析构函数运行很长时间
- 可执行文件在无限大小写(任何时间限制)下将运行多长时间
- 如何向编译器提供有关循环运行最长时间的提示
- 电话簿项目错误.在编译器中并没有发现错误,但当它运行很长时间后就会退出
- C/C++-模拟长时间运行
- 如何终止长时间运行的Qt线程
- 如何为长时间运行的程序执行文件输出
- 用AJAX请求从客户机终止用c++编写的长时间运行的CGI脚本
- 如何在QThread中正确处理来自长时间运行的任务的信号和事件