xperf を使用して、(ローカルで実行されている) ASP.NET アプリケーションの CPU 時間をプロファイリングしようとしています。
これまでのところ、私は標準的な手順に従いました:
cmd
管理者として実行xperf -on base
- Web アプリでいくつかのことを行います。
xperf -d mylog.etl
xperfview mylog.etl
- トレース -> シンボルをロード
- 要約表
その時点で、アンマネージ コードの呼び出しレポートを確認できます。
.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
詳細なメモについては、受け入れられた回答へのコメントを参照してください。