web-dev-qa-db-ja.com

プロセスが終了したときにパフォーマンスモニターにデータコレクターセットを停止させることはできますか?

現在、プログラムのクラッシュをデバッグしており、時間の経過に伴うメモリ使用量に関するデータが必要です。このクラッシュは、特に一晩、長時間開いた後に発生することがよくあります。

この目的のために、プロセスのメモリ使用量をログに記録するパフォーマンスモニターデータコレクターセットを定義しました。ただし、実行時間が長いため、カウンターを無期限にアクティブのままにしたくありません。また、終了時間が不明なため、継続時間の停止条件を使用できません。

Data Collector Set properties -- Stop Condition

プロセスが終了したときにコレクションを停止するにはどうすればよいですか?

1
Bob

Performance Monitor自体にはオプションがないようですが、コマンドラインインターフェイス(logman)は、スクリプト化されたソリューションの可能性を開きます。

PowerShellにはコマンドWait-Process、指定されたプロセスが終了するまでブロックします。

これらを組み合わせると、PowerShellでソリューションが得られます。

Wait-Process programname; sleep 30; logman stop datacollectorsetname

スリープは、プロセスの終了後にコレクターが1つまたは2つのエントリをログに記録するための時間を確保するためにあります。

2
Bob