1

アプリの作業がサーバーのコアにどれだけうまく分散されているかを確認 (または測定) する信頼できる方法はありますか? 頭に浮かぶ唯一の(非常に非科学的な)オプションは次のとおりです。

  1. タスク マネージャーで CPU グラフを「目で見る」
  2. Thread.CurrentThread.ManagedThreadId各作業が完了するたびにアプリが常にコンソールに書き出すようにする

確かに、より良いオプションがありますか?

背景: 私のアプリは着信パケットをリッスンし、メモリ内の作業を行い、データベースにデータを書き込みます。私のターゲット プラットフォームは、4 つのコアを持つ Windows Server マシンです。私のアプリの最初のバージョンは明らかに 1 つのコアを大量に使用しており、他の 3 つのコアはほとんどアイドル状態でした。Task.Factory.StartNew()パケットを受信するたびに他のコア間で作業を分散するために、2 番目のバージョンをデプロイしました。すべてのコアが、最初のアプリのシングル コアよりもビジーになっているようです。

4

1 に答える 1

2

コンカレンシー ビジュアライザーを使用すると、マルチスレッド アプリケーションがそれ自体、ハードウェア、オペレーティング システム、およびコンピューター上の他のプロセスとどのようにやり取りするかを確認できます。これらのビューは、プログラム内のスレッドとシステム全体との間の一時的な関係を示すグラフィカル、表形式、およびテキスト データを提供します。

http://msdn.microsoft.com/en-us/library/dd537632.aspx

于 2012-07-26T15:24:14.053 に答える