2

C++ で記述された非常に大きなプロジェクト (ソリューション全体で約 40,000 のソース ファイルがありますが、プロファイリング中のプロジェクトには約 200 のソース ファイルがあります) のインストルメンテーション プロファイリングを実行しようとしています。

プロファイリングを実行するたびに、約 34 GB の巨大なレポートが作成され、それを分析するときに、ファイル全体を RAM にロードしようとします (と思います)。

明らかに、コンピューターが使用できなくなり、完了する前にアナライザーを停止する必要があります。

助言がありますか?

4

3 に答える 3

6

こんにちは、この応答が遅すぎないことを願っています。Visual Studio プロファイラー チームの Andre Hamilton です。このような大きなレポート ファイルの分析には時間がかかります。すべての関数がインストルメント化されているため、インストルメンテーションはそれだけの量のデータを生成します。コマンドラインによるプロファイリングを気にしないのであれば、いくつかの関数または特定のバイナリをインストルメント化することで、処理を高速化できる可能性があります。これによりvspファイルが作成され、VSで開いて通常どおり使用できます。プロジェクトで n 個のバイナリを実行する必要があるとします。これらのバイナリのうち、バイナリ ni のパフォーマンスに関心があるとします。

VisualStudio のコマンド プロンプトを開きますvsinstr ni.dll。注意: バイナリが署名されている場合は、計測後に再署名する必要があります

2) 指定されたコマンドを使用して、計装モードでプロファイラーを開始します。 vsperf /start:trace /output:myinstrumentedtrace.vsp

3) アプリケーションを起動する

4) プロファイリングを停止する準備が整ったら vsperf /shutdown

お役に立てれば

(注意してください、データの収集と分析の両方を行うための VS のライセンス コピーを持っていることを前提としています)。

于 2013-04-14T08:00:30.870 に答える
0

VS にはバグがあります。その理由は、 http://channel9.msdn.com/Forums/TechOff/260091-Visual-Studio-Performanceで説明されているように、ほとんどのプロファイリング作業が UI スレッドで行われ、VS が使用できなくなるためです。-10分で分析

VS 2012 を試して問題が解決したかどうかを確認することもできますが、34 GB のファイルをロードすることは単純な作業ではなく、システムが使用できなくなる理由であることは間違いありません。ジョンが上記のコメント セクションで提案したように、コードを小さなコンポーネントに分割してからプロファイリングを行ってください。

于 2013-03-01T17:40:49.110 に答える