デバッガーを使用して、または使用せずにプロファイリング ツールを実行するRunning Profiling Tools With or Without the Debugger

Visual Studio ではパフォーマンス ツールを選ぶことができます。一部のツール (たとえば、[CPU 使用率][メモリ使用量]) は、デバッガーがありでもなしでも実行できます。Visual Studio now offers you a choice of performance tools, some of which (for example, CPU Usage and Memory Usage) can be run with or without the debugger. デバッガーを使用しないパフォーマンス ツールは、リリース構成で実行することを目的とし、デバッガー統合のツールはデバッグ構成で実行するためのものです。Non-debugger performance tools are intended to run on Release configurations, while debugger-integrated tools are intended to run on Debug configurations.

このツールは、デバッガーを使用して実行したほうが良いですか、使用しないほうが良いですか。Should I run the tool with or without the debugger?

デバッガー統合のパフォーマンス ツールを使用すると、デバッガーなしのツールが行えない多くのことが可能になります。たとえば、ブレークポイントの設定や変数値の調査を行えます。Debugger-integrated performance tools let you do a lot of things non-debugger tools cannot, for example set breakpoints and inspect variable values. デバッガーを使用しないツールでは、リリースされたアプリケーションでユーザーに対して表示される内容に近いエクスペリエンスが提供されます。Non-debugger tools give you an experience that is closer to what users of the released application will see.

どちらのツールがご自分の目的に適しているかを判断するうえで役立ついくつかの質問を次に示します。Here are some questions that can help you decide which kind of tool is right for your purposes:

  1. アプリケーションの開発中に問題が発生しましたか、またはリリース版に問題が見つかりましたか。Was the issue found while the application was being developed, or was it found in a released version?

    扱っている問題が開発中に見つかったものならば、リリース ビルドでパフォーマンス ツールを実行する必要はおそらくありません。If the issue you are dealing with was found during development, you probably don't need to run the performance tools in a Release build. リリース版で見つかったものであれば、リリース構成で問題を再現して、さらに調査するためにデバッガーが役立つかどうか判断してください。If it was found in a Release version, you should reproduce the issue with a Release configuration, and then decide whether or not the debugger would help for further investigation.

  2. CPU 負荷の高い処理が問題の原因ですか。Is the issue caused by CPU-intensive processing?

    多くの問題は、ファイル入出力、ネットワークの応答性など外的なパフォーマンス上の問題に起因しています。この場合、パフォーマンス ツールのデバッガーの有無が大きな違いになることはありません。Many problems are due to external performance issues such as file I/O or network responsiveness, so it shouldn't make much difference whether you run the performance tools with or without the debugger. 問題が CPU 負荷の高い呼び出しに起因している場合、リリース構成とデバッグ構成の違いは考慮に値するかもしれません。デバッガー統合ツールを使用する前に、おそらくリリース ビルドで問題が生じるかどうかを確認するべきでしょう。If your issue is due to CPU-intensive calls, the difference between Release and Debug configurations may be considerable, and you should probably check to see if the issue exists in the Release build before using the debugger-integrated tools

  3. パフォーマンスを正確に測定する必要がありますか、それともおおよその測定で構いませんか。Do you need to measure performance precisely, or is an approximate number acceptable?

    デバッグ ビルドには、リリース ビルドにはある最適化がありません。たとえば、関数呼び出しと定数のインライン化、不使用のコード パスの除去、変数の保存などは、デバッガーが使用できない方法で行われます。Debug builds lack certain optimizations that Release builds provide, for example inlining function calls and constants, pruning unused code paths, and storing variables in ways that can't be used by the debugger. デバッガー自体によって、パフォーマンス時間が変わります。デバッガーによって必要な特定の操作 (例外の解釈やモジュール読み込みのイベントなど) が実行されるためです。The debugger itself changes performance times because it performs certain operations that are necessary for debugging (for example, intercepting exception and module load events). デバッガー統合ツールでのパフォーマンス数値は、デバッガーの最適化が考慮されないため、精度は低くなりますが、デバッグ中に行われる他の相対測定と比べると便利です。Performance numbers in the debugger-integrated tools are less accurate as they do not account for debugger optimizations, but still can be useful when compared with other relative measurements taken while debugging. デバッガーを使用しないリリース構成のツールによるパフォーマンス数値の方が、精度が高くなります。Performance numbers for Release configurations with the non-debugger tools are much more precise.

デバッグ中にプロファイリング データを収集するCollect profiling data while debugging

次のセクションでは、ローカル デバッグについて説明します。The following section deals with debugging locally. 後のセクションでは、デバイスでのデバッグやリモート デバッグについて確認できます。You can find out about debugging on a device or remote debugging, in later sections.

  1. デバッグするプロジェクトを開いてから、 [デバッグ] / [デバッグの開始] の順にクリックします (またはツールバーの [開始] をクリックするか、 F5キーを押します)。Open the project you want to debug, then click Debug / Start Debugging (or Start on the toolbar, or F5).

  2. [診断ツール] ウィンドウは、オフにしていない限り自動的に表示されます。The Diagnostic Tools window appears automatically unless you have turned it off. もう一度ウィンドウを表示するには、[デバッグ] > [ウィンドウ] > [診断ツールの表示] の順にクリックします。To bring up the window again, click Debug / Windows / Show Diagnostic Tools.

  3. データを収集するシナリオを実行します。Run the scenarios that you want to collect data for.

    セッションの実行中に、イベント、プロセスのメモリおよび CPU 使用率に関する情報を確認できます。While you are running the session, you can see information about events, process memory, and CPU utilization.

    次の図は、Visual Studio 2015 Update 1 の [診断ツール] ウィンドウを示しています。The following graphic shows the Diagnostic Tools window in Visual Studio 2015 Update 1:

    DiagnosticTools-Update1DiagnosticTools-Update1

  4. ツールバーにある [ツールの選択] の設定で、[メモリ使用率][CPU 使用率] (またはその両方) を表示するかどうかを選択できます。You can choose whether to see Memory Usage or CPU Usage (or both) with the Select Tools setting on the toolbar. Visual Studio Enterprise を実行している場合は、[ツール] > [オプション] > [IntelliTrace] で IntelliTrace を有効または無効にすることができます。If you are running Visual Studio Enterprise, you can enable or disable IntelliTrace in Tools / Options / IntelliTrace.

  5. 診断セッションは、デバッグを停止すると終了します。The diagnostic session ends when you stop debugging.

    Visual Studio 2015 Update 1 では、 [診断ツール] ウィンドウを使用すると、興味のあるイベントに簡単に注目できます。In Visual Studio 2015 Update 1, the Diagnostic Tools window makes it easier for you focus on the events you are interested in. イベント名にカテゴリ プレフィックス (ジェスチャプログラム出力ブレークポイントファイルなど) が付随して表示されるようになったため、迅速に一覧をスキャンして特定のカテゴリを検索したり、必要のないカテゴリを飛ばしたりできます。The event names are now shown with category prefixes (Gesture, Program Output, Breakpoint, File, etc.) so you can quickly scan the list for a given category or skip the categories you don't care about.

    ウィンドウには検索ボックスがあり、イベント一覧で特定の文字列を検索できます。The window now has a search box so that you can find a specific string anywhere in the event list. たとえば、次の図は、文字列 "install" の検索の結果、一致する 4 つのイベントが見つかったことを示しています。For example, the following graphic shows the results of a search for the string "install" that matched four events:

    DiagnosticsEventSearchDiagnosticsEventSearch

    ウィンドウに表示するイベントや表示しないイベントをフィルター処理することもできます。You can also filter events in and out of view in the window. [フィルター] ボックスの一覧で、イベントの特定のカテゴリをオンまたはオフにすることができます。In the Filter dropdown, you can check or uncheck specific categories of events:. カテゴリ名は、プレフィックス名と同じです。The category names are the same as the prefix names.

    DiagnosticEventFilterDiagnosticEventFilter

    詳細については、「 Searching and filtering the Events tab of the Diagnostic Tools window」を参照してください。For more information, see Searching and filtering the Events tab of the Diagnostic Tools window.

デバッグなしでプロファイリング データを収集するCollect profiling data without debugging

一部のプロファイリング ツールを実行するには管理者権限が必要です。Some profiling tools require administrator privileges to run. 管理者として Visual Studio を開始することもできますし、診断セッションを開始するときに管理者としてのツールの実行を選択することもできます。You can start Visual Studio as an administrator, or you can choose to run the tools as an administrator when you start the diagnostic session.

  1. Visual Studio でプロジェクトを開きます。Open the project in Visual Studio.

  2. [デバッグ] メニューの [パフォーマンス プロファイラー...] をクリックします。(ショートカット キー: Alt + F2)。On the Debug menu, choose Performance Profiler... (Shortcut key: Alt + F2).

  3. 診断の起動ページで、セッションで実行する 1 つ以上のツールを選択します。On the diagnostic launch page, choose one or more tools to run in the session. プロジェクトの種類、オペレーティング システム、およびプログラミング言語に適用されるツールのみが表示されます。Only the tools that are applicable to the project type, operating system, and programming language are displayed. ある診断ツールを選択すると、同じ診断セッションで実行できないツールの選択肢が無効になります。When you choose a diagnostic tool, the selections for tools that cannot be run in the same diagnostic session are disabled. C# Windows ユニバーサル アプリでの選択例を次に示します。Here's how your choices might look for a C# Windows Universal app:

    診断ツールの選択Select the diagnostic tools

  4. 診断セッションを開始するには、[開始] をクリックします。To start the diagnostic session, click Start.

  5. データを収集するシナリオを実行します。Run the scenarios for which you want to collect data.

    セッションを実行している間に、ツールによっては診断ツールの起動ページにリアルタイム データが表示されます。While you are running the session, some tools display graphs of real-time data on the diagnostic tools launch page.

    [パフォーマンスと診断] ページでデータを収集Collect data on the Performance and Diagnostic pag

  6. 診断セッションを終了するには、[コレクションの停止] をクリックします。To end the diagnostic session, click Stop collection.

    診断セッションにおけるデータ収集を停止すると、データが分析され、[診断] ページにレポートが表示されます。When you stop collecting data in a diagnostic session, the data is analyzed and the report is displayed in the Diagnostic page.

    また、診断ツールの起動ページで直前に開かれた一覧から保存された .diagnosis セッション ファイルを開くことができます。You can also open saved .diagnostic session files from the recently opened list on the diagnostic tools launch page.

    保存済みの診断セッション ファイルを開くOpen a saved diagnosis session file

プロファイリング レポートThe profiling report

診断ツール レポートDiagnostic tools report

手順 1Step 1 タイムラインは、プロファイル セッションの長さ、アプリケーションのアクティブ化ライフサイクル イベント、ユーザー マークを示します。The timeline shows the length of the profiling session, app lifecycle activation events, and user marks.
手順 2Step 2 青いバーをドラッグしてタイムラインの領域を選択することにより、レポートをタイムラインの一部だけに制限できます。You can restrict the report to a part of the timeline by dragging the blue bars to select a region of the timeline.
手順 3Step 3 ツールには 1 つ以上のマスター グラフが表示されます。A tool displays one or more master graphs. 診断セッションが複数のツールによって作成される場合には、すべてのマスター グラフが表示されます。If your diagnostic session is created with multiple tools, all of the master graphs are displayed.
手順 4Step 4 個々のグラフを展開および折りたたむことができます。You can collapse and expand the individual graphs.
手順 5Step 5 データに複数のツールからの情報が含まれる場合、ツールの詳細情報が収集されてタブに表示されます。When your data includes information from multiple tools, the details for the tool is collected under tabs.
手順 6Step 6 ツールには、1 つ以上の詳細ビューが含まれることがあります。A tool can have one or more detail views. ビューはタイムラインの選択された領域でフィルター処理されます。The view is filtered by the selected region of the timeline.

分析ターゲットを別のデバイスに設定するSetting the analysis target to another device

Visual Studio プロジェクトからのアプリの起動以外に、別のターゲットに対して診断セッションを実行することもできます。Besides starting your app from the Visual Studio project, you can also run diagnostic sessions on alternative targets. たとえば、Windows アプリ ストアからインストールされたバージョンのアプリのパフォーマンス問題を診断することができます。For example, you might want to diagnose performance issues on a version of your app that was installed from the Windows App Store.

診断ツールの分析ターゲットを選択Choose diagnostic tools analysis target

既にデバイスにインストール済みのアプリを起動することも、既に実行中の一部のアプリに診断ツールをアタッチすることもできます。You can start apps that are already installed on a device, or you can attach the diagnostic tools to some apps that are already running. [実行中のアプリ] または [インストール済みのアプリ] を選択する場合、指定された配置ターゲット上で検出されたアプリの一覧の中からアプリを選択します。When you choose Running App or Installed App, you select the app from a list that discovers the apps on the specified deployment target.

診断用の実行中またはインストール済みのアプリを選択Choose a running or installed app for diagnosis

[Internet Explorer] を選択する場合には、URL を指定して、電話の配置ターゲットを変更できます。When you choose Internet Explorer, you specify the URL and you can change the phone deployment target.

Internet Explorer に表示する URL を指定Specify the url to display in Internet Explorer

Remote DebuggingRemote Debugging

リモート PC またはタブレットで診断セッションを実行するには、リモート ターゲットに Visual Studio リモート ツールがインストールおよび実行されている必要があります。Running a diagnostic session on a remote PC or tablet requires that the Visual Studio Remote Tools be installed and running on the remote target. デスクトップ アプリについては、「リモート デバッグ」をご覧ください。For desktop apps, see Remote Debugging. Windows ユニバーサル アプリについては、「リモート コンピューターで UWP アプリを実行する」をご覧ください。For Windows Universal apps, see Run UWP apps on a remote machine.

診断開発チームのブログ投稿と MSDN 記事Blog posts and MSDN articles from the Diagnostics development team

MSDN マガジン: Visual Studio 2015 でのデバッグ中のパフォーマンス分析MSDN Magazine: Analyze Performance While Debugging in Visual Studio 2015

MSDN マガジン: IntelliTrace を使用して迅速に問題を診断するMSDN Magazine: Use IntelliTrace to Diagnose Issues Faster

ブログの投稿: Diagnosing Event Handler Leaks with the Memory Usage Tool in Visual Studio 2015 (Visual Studio 2015 でのメモリ使用量ツールを使用したイベント ハンドラーのリークの診断)Blog post: Diagnosing Event Handler Leaks with the Memory Usage Tool in Visual Studio 2015

ビデオ: Historical Debugging with IntelliTrace in Microsoft Visual Studio Ultimate 2015 (Microsoft Visual Studio Ultimate 2015 での IntelliTrace を使用したデバッグ履歴)Video: Historical Debugging with IntelliTrace in Microsoft Visual Studio Ultimate 2015

ビデオ: Debugging Performance Issues Using Visual Studio 2015 (Visual Studio 2015 を使用したパフォーマンスに関する問題のデバッグ)Video: Debugging Performance Issues Using Visual Studio 2015

PerfTips: Performance Information at-a-glance while Debugging with Visual Studio (Visual Studio を使用したデバッグ中のパフォーマンス概要の参照)PerfTips: Performance Information at-a-glance while Debugging with Visual Studio

Visual Studio 2015 の診断ツール [デバッガー] ウィンドウDiagnostic Tools debugger window in Visual Studio 2015

IntelliTrace in Visual Studio Enterprise 2015 (Visual Studio Enterprise2015 の IntelliTrace)IntelliTrace in Visual Studio Enterprise 2015