.NET メモリの割り当ておよび有効期間データの収集
Visual Studio プロファイリング ツールでは、.NET メモリの割り当ておよびオブジェクトの有効期間データの収集がサポートされます。これにより、アプリケーションにおけるメモリ関連のパフォーマンス上の問題を検出できます。
.NET メモリの割り当てに関するデータには、割り当てられた .NET Framework のメモリ オブジェクトのサイズと数が含まれます。
オブジェクトの有効期間データには、3 つのガベージ コレクション ジェネレーションでクリアされた .NET Framework のメモリ オブジェクトのサイズと数が含まれます。
要件
- Visual Studio Ultimate, Visual Studio Premium, Visual Studio Professional
[!メモ]
Windows 8 のセキュリティは強化された機能および Windows Server 2012 は、Visual Studio のプロファイラーがこれらのプラットフォームのデータを収集する方法に大きな変更されました。Windows ストア apps は、新しいコレクション手法が必要です。「Windows 8 および Windows Server 2012 アプリケーションのプロファイリング」を参照してください。
データの収集には、サンプリング メソッドまたはインストルメンテーション プロファイル方法を使用できます。
サンプリング メソッドを使用すると、プロファイラーは、開始またはアタッチされたプロセスによって生成されるすべての .NET メモリの割り当てとオブジェクトを追跡します。
インストルメンテーション プロファイル方法を使用すると、プロファイラーは、インストルメントされるモジュールによって生成される .NET メモリの割り当てとオブジェクトのみを追跡します。
重要 |
---|
サンプリング メソッドを使用して .NET メモリ データ (割り当てかオブジェクトの有効期間、またはその両方) を収集している場合、ユーザーが指定したサンプリング イベントはすべて無視され、適切なメモリの割り当てイベントを使用してデータが収集されます。 |
.NET メモリの割り当てのプロファイリングを有効にすると、[割り当て] ビューも有効になります。.NET 有効期間データのプロファイリングを有効にすると、[オブジェクトの有効期間] ビューも有効になります。詳細については、「.NET メモリの割り当てビュー」および「オブジェクトの有効期間ビュー」を参照してください。
プロファイリング ツールのコマンド ライン ツールを使用して .NET メモリ データを収集する方法については、「各種のプロファイル方法を使用したコマンド ラインからのパフォーマンス データの収集」の「.NET メモリ メソッドを使用したメモリの割り当ておよびオブジェクトの有効期間データの収集」を参照してください。
.NET メモリ データを収集するには
パフォーマンス エクスプローラーで、パフォーマンス セッションを右クリックし、[プロパティ] をクリックします。
パフォーマンス セッション**[プロパティ ページ]** のダイアログ ボックスで、[全般] のタブをクリックし、[.NET オブジェクトの割り当て情報を収集] のチェック ボックスをオンにします。
.NET オブジェクトの有効期間データを収集するには、[.NET オブジェクトの有効期間情報も収集] チェック ボックスをオンにします。
一般的なタスク
パフォーマンス セッションの [パフォーマンス セッション プロパティ ページ] ダイアログ ボックスで追加のオプションを指定できます。このダイアログ ボックスを開くには、次の操作を行います。
- パフォーマンス エクスプローラーで、パフォーマンス セッション名を右クリックし、[プロパティ] をクリックします。
.NET メモリ データを収集するときに [パフォーマンス セッション プロパティ ページ] ダイアログ ボックスで指定できるオプションを、次の表のタスクに示します。
タスク |
関連するコンテンツ |
---|---|
[全般] ページで、生成されるプロファイル データ (.vsp) ファイルの名前付けの詳細を指定します。 |
|
コード ソリューション内に複数の .exe プロジェクトがある場合は、[起動] ページで、開始するアプリケーションを選択します。 |
|
[階層の相互作用] ページで、プロファイリング実行に ADO.NET 呼び出しデータを追加します。 |
|
[Windows イベント] ページで、サンプリング データと共に収集する 1 つ以上の ETW (Event Tracing for Windows) イベントを指定します。 |
|
[Windows カウンター] ページで、プロファイル データにマークとして追加するオペレーティング システムのパフォーマンス カウンターを 1 つ以上指定します。 |
|
アプリケーション モジュールが複数バージョンの .NET Framework ランタイムを使用する場合、[詳細] ページで、プロファイルする .NET Framework ランタイム バージョンを指定します。既定では、最初に読み込まれたバージョンがプロファイリングされます。 |
インストルメンテーション タスク
インストルメンテーション メソッドでのプロファイル実行に固有の [プロパティ ページ] ダイアログ ボックスのオプションを、次の表のタスクに示します。
タスク |
関連するコンテンツ |
---|---|
[バイナリ] ページで、モジュールのインストルメント化されたコピーの場所を指定します。既定では、元のバイナリはバックアップ フォルダーに移動されます。 |
|
[インストルメンテーション] ページで、プロファイリングのオーバーヘッドを軽減するために小規模関数を除外し、ASP.NET Web ページで JavaScript コードをプロファイルし、インストルメンテーション プロセスの前と後にコマンド プロンプトで実行するコマンドを指定します。 |
|
[CPU カウンター] ページで、プロファイル データにマークとして追加するプロセッサのパフォーマンス カウンターを 1 つ以上指定します。 |
|
[詳細] ページで、必要な追加の VSInstr.exe オプションを指定します (特定の関数を含めるオプションや除外するオプションなど)。VSInstr オプションの詳細については、「VSInstr」を参照してください。 |