- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的申请有相当严格的时间限制。偶尔我们会收到我需要丢弃的病态输入。有一个瓶颈循环,它有很多迭代。 Xe6左右。任何超过 30 毫秒的输入都是错误的输入,我知道我可以放弃它。
检查时间和结束循环的性能强度最低的方法是什么?
我查看了 QueryHighPerformanceCounter(),但这增加了相当高的开销,超过 1 毫秒。此外,这比我真正需要的更精确。我真的不知道各种时序对性能的影响。
有什么建议吗?
最佳答案
我可能会在线程中运行循环。我将设置两个 Event 对象:一个表示处理已完成,另一个表示线程应该退出。该线程在退出循环时设置第一个。它通过调用(例如)超时为 0 的 WaitForSingleObject 来定期检查第二个,您可以期望它每隔几毫秒左右执行一次。给定 1e6 次迭代和 30 毫秒,假设一次非常 30.000 次迭代。如果设置了该事件,它将退出循环。
我有另一个线程在第一个事件上执行 WaitForSingleObject。当它调用 WaitForSingleObject 时,它指定 30 毫秒的超时。当 WaitForSingleObject 返回时,它检查返回值。如果它因为设置了事件而返回,则处理完成,您可以继续。如果超时,您设置第二个事件,下次线程检查事件时,它会看到它已收到停止处理的信号,因此它退出循环。
这显然不是完成这项工作的唯一可能方法,但它是一种非常简单的方法,开销应该非常小。循环中唯一会发生的部分是对 WaitForSingleObject 的零超时调用。
至少在我对相当新的 CPU 进行的测试中,您可以预期每个调用大约需要 0.2 微秒,因此您在 30 毫秒的处理过程中总共增加了大约 6 微秒。 IOW,您将处理速度减慢了不到 1%。我怀疑处理速度的差异是否可以可靠地衡量,更不用说它会产生任何显着差异了。
关于c++ - 在 x 时间后结束循环的最低性能密集方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27612997/
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5 个月前关
我正在尝试使用摄像机跟踪多个人。我不想使用 blob 分割技术。我想做什么: 执行背景减法以获得隔离人们运动的掩码。 在这些区域执行基于网格的光流 -我最好的选择是什么? 我正在努力实现。我已经尝试过
OpenCV 有 very good documentation on generating SIFT descriptors ,但这是“弱 SIFT”的一个版本,其中关键点由原始 Lowe algo
我有一个 cholmod_dense 数据结构: cholmod_dense* ex = cholmod_l_solve(CHOLMOD_A, L, B, &com); 我想提取这些值并将它们复制到另
这是先前发布的关于在 python 中使用 OpenCVs 密集筛选实现的问题的后续问题 (OpenCV-Python dense SIFT)。 使用建议的代码进行密集筛选 dense=cv2
我是计算机视觉的新手。我正在学习 Dense SIFT 和 HOG。对于密集 SIFT,算法只是将每个点视为一个有趣的点并计算其梯度向量。 HOG 是另一种用梯度向量描述图像的方法。 我认为 Dens
我正在尝试使用 openCV-python 2.4 计算密集 SIFT import cv2 def gen_sift_features(gray, step_size, gamma): de
我正在使用 OpenCV 实现词袋图像分类器。最初我测试了在 SURF 关键点中提取的 SURF 描述符。我听说 Dense SIFT(或 PHOW)描述符更适合我的目的,所以我也尝试了它们。 令我惊
我有一个密集的 Ax=b 类型的方程组要在我的 C++ 程序中求解,我希望在 boost 中使用 UBLAS 来实现该解决方案。在其他一些问题中,我发现人们正在使用扩展 LAPACK,但不幸的是,它似
我目前有一台配备 Opteron 275 (2.2Ghz)(双核 CPU)和 4GB RAM 以及速度非常快的硬盘的机器。我发现即使是使用 C++ 模板(想想 boost 等)编译一些简单的项目时,我
我是一名优秀的程序员,十分优秀!