掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
スレッド化で処理が遅くなる? (ID:23644)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
1.複数のテスタがそれぞれ独立したIOポート(COM1〜10のような)であるか? これがもしポートが共通でテスタをスイッチングしているようでしたら結局この部分がシーケンシャルな処理を行っているので並列処理のメリットは生じません。 2.テスタからデータを読み込むだけでなくほかの処理(読み込んだデータを出力するなど)を行っていないか?Synchronizeを使用して同一のコンポーネントに出力するなど行っているとこの部分がシーケンシャルな処理になるので(以下略 3.スレッドの寿命が短すぎないか? OSやCPUによって値は異なりますが、スレッドの寿命や要求している処理が10〜20msのオーダーですと実際はタイムスライスが発生せず結果的にシーケンシャルな処理に(以下略 思いつく事を書いてみました。 処理の多重化のポイントはどの部分がボトルネックになっているかです。 この辺はハードのスペックに依存する部分が多いのでトライ&エラーでしか検証できないのですが、1〜3の条件をクリアしてても問題があるとするともしかすると多重度が高すぎるのかもしれません。 「スレッド内での処理時間が短いとスレッド化のメリットがないのでしょうか?」 「priorityをtpTimeCriticalにすると始めは速くなるのですが、そのうちだんだん遅くなります。」 このへんのキーワードから察するにスレッドスケジュールがキツ過ぎるのかもしれません。10台のテスタを2〜5台ずつにするなどして多重度を下げてあげるとうまくいきそうな気がします。 長々と書きましたが参考になれば幸いです。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.