web-dev-qa-db-ja.com

なぜVS 2015が診断セッションの停止に時間がかかるのですか?

「タイムライン」のみをアクティブにしたパフォーマンスプロファイラーを使用して、WPFプロジェクト(WPF、.NET 4.6.1、EF 6、Moq。、W10 64ビットのi5マシン上)を分析しようとしています。

問題は、プログラムを停止すると、「Report ..... diagsession」タブで「Microsoft Visual Studioが診断セッションを停止しています」というメッセージと回転する砂時計で止まることです。たまにタイムアウトすることもあれば、最終的にレポートに到達することもありますが、5〜20分後です。

興味深いことに、診断セッションが停止するのを待機している時間がレポートに含まれています。これは、データを収集するプロセスがメッセージを取得して記録を停止しないようなものです。

Windowsリソースモニターを使用して、VsStandardCollector.exeが "C:\ Users\XXX\AppData\Local\Temp \"のサブフォルダーに大量のデータを書き込んでいることに気付きました。私の最後の試みで約9ギガバイト、合計10分をカバーしましたが、アプリケーションが停止する前に30秒間しか実行されませんでした。

何がセッションの停止を遅らせるのか考えている人はいますか?

待機中のCPUおよびディスクの使用率が非常に低い(<5%)

22

最近、マイクロソフトの内部でもパフォーマンス分析に使用される PerfView ツールについて学びました。 VisualStudioよりもはるかに安価ですが、実際には無料です。

そのため、これを使用してVisual Studioのパフォーマンスを分析し、質問に答えることができます。さらに、それを使用して、独自のWPFアプリケーションのパフォーマンスを分析することもできます。

1
Puterdo Borato

プロジェクトが4 GBを超える場合、標準のプロファイラーは非常に遅く、不明な目に見えない内部の問題が原因でハングすることがあります。以下の手順でこれをなんとかやりました

  1. ビルドリリースバージョン
  2. 一時停止状態でプロファイラーを実行します。
  3. VSがそれを要求する場合、VSにデバッグアカウントのためのより多くの権限を与えます。
  4. プロファイラーを短時間アクティブにします。
  5. アプリケーションを閉じる
  6. レポートが生成されるまで10〜20分以上待ちます。
0
justromagod