4

xperf を使用して、(ローカルで実行されている) ASP.NET アプリケーションの CPU 時間をプロファイリングしようとしています。

これまでのところ、私は標準的な手順に従いました:

  1. cmd管理者として実行
  2. xperf -on base
  3. Web アプリでいくつかのことを行います。
  4. xperf -d mylog.etl
  5. xperfview mylog.etl
  6. トレース -> シンボルをロード
  7. 要約表

その時点で、アンマネージ コードの呼び出しレポートを確認できます。

.NET アセンブリで同じことを確認するにはどうすればよいですか? これは可能ですか?

に PDB へのパスが_NT_SYMBOL_PATHあり、少なくとも MS シンボルが読み込まれていることはわかっています。

この質問を見たことがありますが、解決策はありません。この答えによると、

Windows 8 SDK の xperf バージョンが必要です。このバージョンは .net をサポートしています。新しい Performance Recorder UI でトレースを開始すると、このツールは生成された .net コンポーネントの PDB を生成し、xperfview と WPA がコールスタックをデコードできるようにします。

誰でもこれを確認できますか?Windows 7 と Windows 7 SDK を使用しています。別のプラットフォーム SDK をインストールすることに懐疑的です。

更新: はい、Windows 8 SDK は Windows 7 で実行されます。この目的のために必要なのは、Performance Toolkit だけです。実際、新しい「Windows パフォーマンス アナライザー」を使用する必要さえありません。新しい「Windows パフォーマンス レコーダー」によって生成されたファイルは、強化されたスタック トレースを含め、etl引き続き で動作するからです。xperfview詳細なメモについては、受け入れられた回答へのコメントを参照してください。

4

1 に答える 1