アプリの作業がサーバーのコアにどれだけうまく分散されているかを確認 (または測定) する信頼できる方法はありますか? 頭に浮かぶ唯一の(非常に非科学的な)オプションは次のとおりです。
- タスク マネージャーで CPU グラフを「目で見る」
Thread.CurrentThread.ManagedThreadId
各作業が完了するたびにアプリが常にコンソールに書き出すようにする
確かに、より良いオプションがありますか?
背景:
私のアプリは着信パケットをリッスンし、メモリ内の作業を行い、データベースにデータを書き込みます。私のターゲット プラットフォームは、4 つのコアを持つ Windows Server マシンです。私のアプリの最初のバージョンは明らかに 1 つのコアを大量に使用しており、他の 3 つのコアはほとんどアイドル状態でした。Task.Factory.StartNew()
パケットを受信するたびに他のコア間で作業を分散するために、2 番目のバージョンをデプロイしました。すべてのコアが、最初のアプリのシングル コアよりもビジーになっているようです。