私のC#Brute Forceプログラムは、実行時にCPUの20%を使用します。 Imは1人のBackgroundworkerを使っています。この作業をいくつかの部分に分けて、7-8のBackgroundworkersに挿入すれば、それは速くなり、より多くのCPUを使用するでしょうか?複数のBackgroundWorkersのブルートフォースが速くなっていますか?
答えて
短い答えは多分です。
長い答えは、それは複数の要因に依存することである:
は、あなたのタスクのCPUがバインドされている、それはタスクを保持するCPUではないならば、マルチスレッドはおそらく助けにはなりません。
あなたのプロセッサにはいくつのコアがあり、ハイパースレッディングが有効になっていますか?スレッドが1つしかない場合は、マルチスレッドを試みると速度が遅くなります。それ以上のものがあれば、OSで利用可能な数のスレッドをプログラム内で使用できます。 (開始するスレッドの数を確認するには、
Environment.ProcessorCount
の値を使用することをお勧めします)。- スレッド間の同期をどのくらい行う必要がありますか。あなたのスレッドがロックされた共有変数への書き込みを待機しているか、それらの間でデータを渡していると、アプリケーションが遅くなる可能性があります。
私の主な提案は、テストすることです!
直感的なStopwatch
クラスを使用すると、コードセグメントの実行時間をかなり正確に計測できます。
最後に、バックグラウンドワーカーではなくThread[]
を使用してみるとよいでしょう。一般に、これらはオーバーヘッドが低く、少し速いです。
ありがとうございます。現在、私はそれをテストしています... – KotMaster
ANTS Performance ProfilerまたはVS組み込みのものも、パフォーマンスの理解に役立ちます。 –
「スタック」という単語をテストしました。バックグラウンドワーカー1は長さ1の単語を検索します。背景ワーカー2は長さ2の単語のように続きます。
Word: stack
Backgroundworker Time
1 1min 8sec
5 35sec
- 1. C#複数のBackgroundWorkers
- 2. 複数のBackgroundWorkersをトラッキングする
- 3. 複数のテーブルからあいまいな名前が返ってくるPHP
- 4. とにかくブルートフォースではないこのパズルをやってみませんか?
- 5. カーソルが速く戻っていますか?
- 6. C++でunordered_map/setのハッシュ関数が高速になっていますか?
- 7. Rubyの3進数が短くなっていますか?
- 8. PostDelayed関数がより速くて速くなる
- 9. Engine.mc()とは何ですか、なぜ私のモデルの速度が遅くなっていますか?
- 10. C# - プログラムが非常に速く減速しています、なぜですか?
- 11. 複数の減速材または複数の減速器フィールド
- 12. HTML/CSS複数の画像が重なっています
- 13. UIStackView複数のボタンが重なっています
- 14. 複数の迅速なパラメータ
- 15. 複数のリストに複数の項目が含まれていないか確認してください
- 16. RelativeLayoutのAndroid EditTextがあまりにも速く広がっています
- 17. 複数のオーディオタグがうまく連携していない
- 18. Pythonのマルチプロセッシング作っていない、それより速く
- 19. spritekitでボタンを押したときに、ノードの速度が速く、速くなっているのはなぜですか?
- 20. libgdxの方が速く動いていますか?
- 21. 複数のケースステートメントがうまくいかない
- 22. このタイルブリッタはもっと速くなりますか?
- 23. なぜこの迅速なコードが間違っていますか?
- 24. C# - デリゲートとBackgroundWorkers
- 25. ブルートフォースは、Pythonを使用した複数回帰の最良のオプションですか?
- 26. githubの縞がなくなっていますか?
- 27. 複数のアプリユーザーのCoreLocationが機能しなくなった
- 28. イメージが読み込まれるのを待っていて、予想より速く遅れていますか?
- 29. 複数のWCFサービスアプリケーションでアプリケーション設定がnullになっていますか?
- 30. いくつかのブートストラップカラムが重なっています
試しましたか? – Fabio
まだありません。しかし、多分あなたの誰かが私が試みる前に私に答えを与えることができます。 – KotMaster
@AxelKemper必ずしもそうでなくても、その20%のCPU使用率は簡単に1つのコア全体になる可能性があります... –