2016-06-20 3 views
0

私はWindowsフォームとHTMLAgilityPackを使用してWebサイトのHTMLを変数に読み込み、Parallel.Forを使用して一度に10個ずつ呼び出します。Windowsフォームでマルチスレッドのパフォーマンス/容量を測定する方法は?

これをParallelで何回行うことができますか?タスクマネージャのCPU使用率を監視していますか?私は何度か何度も電話していますか?

おかげデフォルトで

答えて

1

については、とのForEachしかし多くのスレッドを利用する基本的なスケジューラがそのように使用されますどのように多くの並行タスクデフォルトからのみ制限をMaxDegreeOfParallelismの変更、提供します。

https://msdn.microsoft.com/en-us/library/system.threading.tasks.paralleloptions.maxdegreeofparallelism.aspx

+0

ありがとうございました! MaxDegreeOfParallelismを増やして、一度に100個の同時タスクを実行しようとします.100が良い数字であることをどのように知っていますか? CPU使用率ですか?可能なスレッドの数にCPUコアの関係はありますか? –

+0

TPLは、ホスティングマシンのコア/プロセッサに基づいて最適なスレッド数を自動的に決定します。実際の問題を抱えておらず、自動計算された値を減らす必要がなければ、心配する必要はありません – Oscar

0

あなたは最高のパフォーマンスが得られ、並列処理のどの程度(何のスレッド)を決定しようとしていますか?
私はあなたがそのパフォーマンスが実際に問題であるかを決定しない限り、それについては心配しないでください

  • をお勧めします。あなたはそれを微調整することができますが、使用しているコンピュータの完璧な設定は、コードが実行される別の場所ではそれほど大きくないかもしれません。
  • 複数のテストを実行し、どちらがより早く終了するかを確認します。私たちの前に戻るParallel.ForEach私は時々それをするでしょう。私はしばしばスレッドを追加すると実行が速くなることを意味していました。

パフォーマンスの問題が発生していない限り、これが修正だと思わない限り、私はそれについて心配しません。

関連する問題