2016-08-17 8 views
-3

私はあなたの助けが必要です。私はProgrammで作業します.25fpsで画像を取得し、20msごとに編集する必要があります。私はこれのためのプログラムの例を構築します。whileループはforループです(作業時間は約19〜20msですが、これは問題ありません)。それから、私は全体をスレッド化し、この安定したものにしなければなりませんでした。私は同じ時間に12スレッドで作業する必要があります。 問題は私の評価で、テストの8時間で私は30から40ミリ秒の値が3-5になり、私はなぜそれがわかりません。 私は既に、C++ 11の並列スレッドでThing全体を試してみたところ、同じTime Valuesになっています。 私は、2つのプロセッサと16のCPUを搭載したDellサーバで作業しています。 ありがとうございます。C++でのVSのスレッディングに関する問題

+0

お世話になります。不可解ではないにしても、目に見えない実装を改善する方法を提案することは困難です。意味のある回答が必要な場合は、あなたの疑問を広げなければなりません。 – user4581301

+0

コードを貼り付ける必要がありますか? –

+0

ほとんどの場合、コードまたはコードである可能性のあるアルゴリズムの詳細な説明を投稿することがほとんどです。あなたはすべてのコードを投稿したくありません。あなたは[mcve]を投稿したいと思いますが、あなたが描いているものは印象的に長いMCVEを持っています。 – user4581301

答えて

1

ここで問題となるのは、Windows(ほとんどのLinuxの亜種も)はreal-time operating systemではないということです。したがって、一貫した最大タスク時間を保証するわけではありません。外部入力は、短期間または長期間スレッドを保持することがあります。スレッドの作業時間を1〜2ミリ秒にまで短縮しても、実行時間が20ミリ秒を超える状況が発生する可能性があります。あなたのソリューションは以下のとおりです。リアルタイムOSを使用するか、定期的な遅延を許容する規定を作成します(これは設計上の問題です)。

+0

はい、私はすでに、Windowsのジッタが問題の原因であると考えていました。私はすでにこれを解決できるソフトウェア(Kithara)を手に入れましたが、現時点ではパフォーマンスの問題があり、全体が安定していますが、3倍は遅くなるはずです。 –

+0

動作するはずのリアルタイムOSをお勧めしますか? –

+0

私はそれについての経験はありませんが、[RTX Real Time Extensions for Windows](http://www.directinsight.co.uk/rtx-real-time-windows/)が良い解決策になるかもしれません。それ以外の場合は、[RTLinux](https://en.wikipedia.org/wiki/RTLinux)や[ChronOS Linux](http://chronoslinux.org/wiki/Main_Page)のようなLinux OSを調べて、どのプラットフォーム必要なパッケージやAPIのほとんどをサポートしています。 –

関連する問題