C++ 使用c++;

C++ 使用c++;,c++,multithreading,visual-studio,C++,Multithreading,Visual Studio,我需要你的帮助。我在做一个程序,它应该以25fps的速度抓取图片,并以20ms的速度编辑它们。我为此构建了一个示例程序,它在for循环中经过while循环(工作时间约为19-20ms,这是可以的)。然后我穿上了所有的衣服,不得不变得这么稳定。我必须同时使用12个线程。 问题在于我的评估,在8小时的测试中,我变成了3-5个30-40毫秒的值,我不知道为什么。 我也已经用c++11并行线程尝试了整个过程,并且变成了相同的时间值。 我在一台有2个处理器和16个CPU的Dell服务器上工作。 谢谢您的帮

我需要你的帮助。我在做一个程序,它应该以25fps的速度抓取图片,并以20ms的速度编辑它们。我为此构建了一个示例程序,它在for循环中经过while循环(工作时间约为19-20ms,这是可以的)。然后我穿上了所有的衣服,不得不变得这么稳定。我必须同时使用12个线程。 问题在于我的评估,在8小时的测试中,我变成了3-5个30-40毫秒的值,我不知道为什么。 我也已经用c++11并行线程尝试了整个过程,并且变成了相同的时间值。 我在一台有2个处理器和16个CPU的Dell服务器上工作。
谢谢您的帮助。

这里的问题是Windows(以及大多数Linux变体)不是一个好的应用程序。因此,您不能保证有一致的最大任务时间。任何外部输入都可能会在短时间或更长时间内抑制线程。即使您将线程工作时间降低到1-2毫秒,您仍然可能会遇到运行时间>20毫秒的情况。您的解决方案是:要么使用实时操作系统,要么制定允许周期性更长延迟的规定(这更像是设计问题)。

嘿,欢迎使用堆栈溢出!恐怕很难,如果不是不可能的话,就如何改进一个看不见的实现提出建议。如果你想得到有意义的回答,你就必须展开你的问题。所以我必须粘贴代码?你几乎总是想发布代码或算法的非常详细的描述,这也可能是代码。但是,您不想发布所有代码。你想发布一篇文章,你所描述的内容将有一个令人印象深刻的MCVE。是的,我已经认为,Windows抖动可能是问题的原因。我已经有了一个可以解决这个问题的软件(名为Kithara),但在他们遇到性能问题的那一刻,整个系统是稳定的,但比应该的速度慢了3倍。你能推荐一个实时操作系统吗?虽然我没有这方面的经验,但它可能是一个很好的解决方案。否则,我建议调查类似Linux操作系统的或,看看哪个平台支持您所需的大多数软件包和/或API。这可能是关于Linux RTOS开发的有趣阅读: