2016-04-19 13 views
1

.NETマルチスレッドアプリケーションがあります。実行時にCPU、Mememory e.t.cのようなスレッドが消費するリソースに関する情報を表示する方法はありますか? たとえば、大量のメモリを使用して重い演算を実行するスレッドを実行した場合、特定のスレッドがどれだけ消費するかを知りたいと思います。実行時にスレッドが消費するリソースに関する情報を取得

+0

[診断ツール](https://blogs.msdn.microsoft.com/visualstudioalm/2015/01/16/diagnostic-tools-debugger-window-in-visual-studio-2015/)を使用できます。 –

+0

実行時にC#経由でアクセス可能ですか? – Anton

+0

hmmm私はあなたがスレッドのメモリ消費を表示することはできないと思います。例:スレッドを使用して大きなデータセットを初期化することができます。データが初期化された後、スレッドは終了することができますが、オブジェクトはまだ割り当てられています.... – Mat

答えて

0

これはあなたの全体のプロセスのメモリ使用量を与えるために起こっている:スレッド測定毎

// get the current process 
Process currentProcess = System.Diagnostics.Process.GetCurrentProcess(); 

// get the physical mem usage 
long totalBytesOfMemoryUsed = currentProcess.WorkingSet64; 

、私はあなたが(ではないが簡単な作業で)使用されるオブジェクトの数を追跡示唆しています。

0

スレッドの中心的概念は、スレッドが所有するプロセスリソースを共有することです。スレッドには独自のリソース所有権の概念はありません。

外部からプロセス(および含まれているスレッド)のビューを表示する場合は、いくつかのツールを使用できます。

動的割り当ての使用状況を把握したい場合は、まずあなたが本当に必要としていることを確認します(.netはメモリをうまく管理します)。しかし、必要がある場合は、System.Diagnosticsという名前空間が必要です。特にPerformanceCountersにあります。しかし、アクティブな監視がパフォーマンスの特性を変えることに注意してください。

関連する問題