.NET メモリの割り当ておよび有効期間データの収集Collecting .NET Memory Allocation and Lifetime Data

Visual StudioVisual Studio プロファイリング ツールは、.NET メモリ割り当てとオブジェクト有効期間データの収集をサポートしています。アプリケーションのメモリに関連するパフォーマンスの問題を検出できます。 Profiling Tools support the collection of .NET memory allocation and object lifetime data, which helps you detect memory-related performance issues in your application.

  • .NET メモリ割り当てに関するデータには、割り当てられた .NET Framework メモリ オブジェクトのサイズと数が含まれています。Data about .NET memory allocation includes the size and number of .NET Framework memory objects that were allocated.

  • オブジェクトの有効期間データには、3 つのガベージ コレクション生成で解放される .NET Framework メモリ オブジェクトのサイズと数が含まれています。Object lifetime data includes the size and number of .NET Framework memory objects that were reclaimed in the three garbage collection generations.


  • Visual Studio UltimateVisual Studio UltimateVisual Studio PremiumVisual Studio PremiumVisual Studio ProfessionalVisual Studio Professional, Visual Studio PremiumVisual Studio Premium, Visual Studio ProfessionalVisual Studio Professional


Windows 8 および Windows Server 2012 の強化されたセキュリティ機能によって、Visual Studio プロファイラーがこれらのプラットフォームでデータを収集する方法に大幅な変更が必要になりました。Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. UWP アプリにも新しい収集手法が必要です。UWP apps also require new collection techniques. Windows 8 および Windows Server 2012 アプリケーションのパフォーマンス ツール」を参照してください。See Performance Tools on Windows 8 and Windows Server 2012 applications.

データを収集するには、サンプリングまたはインストルメンテーション プロファイリング メソッドを使用します。You can collect data by using either the sampling or the instrumentation profiling method.

  • サンプリング メソッドを使用すると、プロファイラーでは、開始またはアタッチされたプロセスで生成されたすべての .NET メモリ割り当てとオブジェクトが追跡されます。When you use the sampling method, the profiler tracks all .NET memory allocations and objects that are generated by the process that was started or attached to.

  • インストルメンテーション メソッドを使用すると、プロファイラーでは、インストルメント化されたモジュールで生成された .NET メモリ割り当てとオブジェクトのみが追跡されます。When you use the instrumentation method, the profiler tracks only those .NET memory allocations and objects that are generated by the instrumented modules.


サンプリング メソッドを使用して .NET メモリ データ (割り当てかオブジェクトの有効期間、またはその両方) を収集している場合、ユーザーが指定したサンプリング イベントはすべて無視され、適切なメモリの割り当てイベントを使用してデータが収集されます。When you are collecting .NET memory data (allocations, object lifetimes, or both) by using the sampling method, all user-specified sampling events are ignored, and the appropriate memory allocation events are used to collect data.

.NET メモリ割り当てのプロファイリングを有効にすると、割り当てビューも有効になります。If you enable the profiling of.NET memory allocation, you also enable the Allocation View. .NET 有効期間データのプロファイリングを有効にすると、オブジェクトの有効期間ビューも有効になります。If you enable the profiling of .NET lifetime data, you also enable the Objects Lifetime View. 詳細については、「.NET メモリの割り当てビュー」と「オブジェクトの有効期間ビュー」を参照してください。For more information, see Allocations View and Object Lifetime View.

プロファイリング ツール コマンドライン ツールを使用して .NET メモリ データを収集する方法の詳細については、「各種のプロファイル方法を使用したコマンド ラインからのパフォーマンス データの収集」の「.NET メモリ メソッドを使用してメモリの割り当てとオブジェクトの有効期間のデータを収集する」を参照してください。For information about how to collect .NET memory data by using the Profiling Tools command-line tools, see Using .NET Memory Methods to Collect Memory Allocation and Object Lifetime Data in Using Profiling Methods From the Command Line.

.NET メモリ データを収集するにはTo collect .NET memory data

  1. パフォーマンス エクスプローラーで、パフォーマンス セッションを右クリックして、 [プロパティ]をクリックします。In Performance Explorer, right-click the performance session, and then click Properties.

  2. [パフォーマンス セッション][プロパティ ページ] ダイアログ ボックスで [全般] タブをクリックし、[.NET オブジェクトの割り当て情報を収集] チェック ボックスをオンにします。On the Performance SessionProperty Pages dialog box, click the General tab, and select the Collect .NET object allocation information check box.

  3. .NET オブジェクトの有効期間データを収集するには、[.NET オブジェクトの有効期間情報も収集] チェック ボックスをオンにします。To collect .NET object lifetime data, select the Also collect .NET object lifetime information check box.

一般的なタスクCommon Tasks

追加のオプションを、パフォーマンス セッションの [ パフォーマンス セッション][プロパティ ページ] ダイアログ ボックスで指定できます。You can specify additional options in the Performance SessionProperty Pages dialog box of the performance session. このダイアログ ボックスを開くには:To open this dialog box:

  • パフォーマンス エクスプローラーで、パフォーマンス セッション名を右クリックして [プロパティ]をクリックします。In Performance Explorer, right-click the performance session name, and then click Properties.

    次の表の各タスクでは、.NET メモリ データを収集する際に、[パフォーマンス セッション][プロパティ ページ] ダイアログ ボックスで指定できるオプションについて説明しています。The tasks in the following table describe options that you can specify in the Performance SessionProperty Pages dialog box when you collect .NET memory data.

タスクTask 関連するコンテンツRelated Content
[全般] ページで、生成されるプロファイリング データ (.vsp) ファイルの名前付けの詳細を指定します。On the General page, specify naming details for the generated profiling data (.vsp) file. - .NET メモリの割り当ておよび有効期間データの収集- Collecting .NET Memory Allocation and Lifetime Data
- 方法: パフォーマンス データ ファイル名のオプションを設定する- How to: Set Performance Data File Name Options
コード ソリューション内に複数の .exe プロジェクトがある場合は、[起動] ページで、開始するアプリケーションを選択します。On the Launch page, choose the application to start if you have multiple .exe projects in your code solution. - 階層相互作用データの収集- Collecting tier interaction data
[階層の相互作用] ページで、プロファイリング実行に ADO.NET 呼び出しデータを追加します。On the Tier Interaction page, add ADO.NET call data to the profiling run. - 階層相互作用データの収集- Collecting tier interaction data
[Windows イベント] ページで、サンプリング データと共に収集する 1 つ以上の ETW (Windows イベント トレーシング) イベントを指定します。On the Windows Events page, specify one or more Event Tracing for Windows (ETW) events to collect with the sampling data. - 方法: ETW (Event Tracing for Windows) データを収集する- How to: Collect Event Tracing for Windows (ETW) Data
[Windows カウンター] ページで、プロファイリング データをマークとして追加するオペレーティング システムのパフォーマンス カウンターを 1 つ以上指定します。On the Windows Counters page, specify one or more operating system performance counters to add to the profiling data as marks. - 方法 : Windows カウンター データを収集する- How to: Collect Windows Counter Data
アプリケーション モジュールで複数のバージョンを使用する場合は、[詳細] ページで、プロファイリングする .NET Framework ランタイムのバージョンを指定します。On the Advanced page, specify the version of the .NET Framework runtime to profile if your application modules use multiple versions. 既定では、最初に読み込まれたバージョンがプロファイリングされます。By default, the first version loaded is profiled. - 方法: side-by-side 実行でプロファイリングするように .NET Framework ランタイムを指定する- How to: Specify the .NET Framework Runtime

インストルメンテーション タスクInstrumentation Tasks

次の表のタスクは、インストルメンテーション メソッドでのプロファイリングに固有の [プロパティ ページ] ダイアログ ボックスのオプションです。The tasks in the following table are options in the Property Pages dialog box that are specific to profiling with the instrumentation method.

タスクTask 関連するコンテンツRelated Content
[バイナリ] ページで、モジュールのインストルメント化されたコピーの場所を指定します。On the Binaries page, specify a location for the instrumented copies of the modules. 既定では、元のバイナリはバックアップ フォルダーに移動されます。By default, the original binaries are moved to a backup folder. - 方法 : インストルメント化されたバイナリを再配置する- How to: Relocate Instrumented Binaries
[インストルメンテーション] ページで、プロファイリングのオーバーヘッドを低減するために小規模関数を除外し、ASP.NET Web ページで JavaScript コードをプロファイルし、インストルメンテーション処理の前と後にコマンド プロンプトで実行するコマンドを指定します。On the Instrumentation page, exclude small functions from profiling to reduce the profiling overhead, profile JavaScript code in ASP.NET Web pages, and specify commands to run at a command prompt before and after the instrumentation process. - 方法 : インストルメンテーションで短い関数を除外または含める- How to: Exclude or Include Short Functions from Instrumentation
- 方法: Web ページ内の JavaScript コードをプロファイリングする- How to: Profile JavaScript Code in Web Pages
- 方法 : インストルメント化前のコマンドおよびインストルメント化後のコマンドを指定する- How to: Specify Pre- and Post-Instrument Commands
[CPU カウンター] ページで、プロファイリング データを追加するプロセッサのパフォーマンス カウンターを 1 つ以上指定します。On the CPU Counters page, specify one or more processor performance counters to add to the profiling data. - 方法 : CPU カウンター データを収集する- How to: Collect CPU Counter Data
[詳細] ページで、追加する VSInstr.exe オプションをすべて指定します (特定の関数を含めるオプションや特定の関数を除外するオプションなど)。On the Advanced page, specify any additional VSInstr.exe options that you want, such as options to include or exclude specific functions. VSInstr オプションの詳細については、「VSInstr」を参照してください。For more information about VSInstr options, see VSInstr - 方法 : 追加のインストルメンテーション オプションを指定する- How to: Specify Additional Instrumentation Options
- 方法 : インストルメンテーションを特定の関数に制限する- How to: Limit Instrumentation to Specific Functions

参照See Also

パフォーマンス セッションの構成 Configuring Performance Sessions
方法: 収集方法を選択する How to: Choose Collection Methods
パフォーマンス セッションのプロパティPerformance Session Properties