2
私は非常にうまく動作するpthreadsプログラムを実行していますが、私は期待していたスピードアップを見ていません。私はスレッドを作成して破壊するのに多くの時間を費やしていると思う。静的なワークプールまたは(スレッドの)動的ワークプールを使用する必要がありますか?
私はCPUを搭載しているスレッドよりも多くのスレッドを実行していません。
20分かけて、私は約5000スレッドを作成しています。
私は静的な数の作業者しか割り当てないように、適切な静的作業プールを実装する価値があるのかどうかです。
スレッドの作成はボトルネックではありません。ローエンドのシステムでは、スレッドの作成に約30マイクロ秒かかります。 20分のうち150000マイクロ秒は何もありません。 –
あなたのスレッドが何をしているかを確かめてください。 CPUが一度に複数の命令を処理できるかもしれませんが、あなたのコードが話している他のハードウェア/ソフトウェアについてはどうでしょうか?たとえば、シングルスレッドのHDDに書き込んだ場合、パフォーマンスは向上しません。 – SlappyTheFish
はい、@ SlappyTheFishは良い点です。私たちは問題空間について何も知らないので、アドバイスをするのは難しいです。しかし、一般に、マルチスレッド・プログラムでのリソース競合のチェックは、ボトルネックを見つけるのに適しています。 –