CPU サンプリングの初心者向けガイドBeginners Guide to CPU Sampling

Visual Studio プロファイリング ツールを使用して、アプリケーションでパフォーマンスの問題を分析することができます。You can use Visual Studio profiling tools to analyze performance issues in your application. 以下の手順では、サンプリング データの使用方法を示します。This procedure shows how to use Sampling data.

注意

インストルメンテーション サポートなど、特別な機能を必要としない限り、以前の CPU サンプリング ツールではなく、[診断ツール] ウィンドウの [CPU 診断] ツールの使用をお勧めします。We recommend you use the CPU Usage tool in the Diagnostics Tools window instead of the legacy CPU sampling tool, unless you need specialized features such as instrumentation support.

サンプリングは、統計情報を基準としたプロファイリング方式で、アプリケーション内で最も多くのユーザー モード作業を実行している関数を特定できます。Sampling is a statistical profiling method that shows you the functions that are doing most of the user mode work in the application. アプリケーションの実行速度を上げるために最適化する必要のある場所を調べるには、まずサンプリングを実行することをお勧めします。Sampling is a good place to start to look for areas to speed up your application.

サンプリング方式では、アプリケーションで実行されている関数についての情報が、指定した間隔で収集されます。At specified intervals, the Sampling method collects information about the functions that are executing in your application. プロファイリングの実行が終了すると、プロファイリング データの [概要] ビューに、アプリケーションでのほとんどの作業が行われているホット パスという最もアクティブな関数のコール ツリーが表示されます。After you finish a profiling run, the Summary view of the profiling data shows the most active function call tree, called the Hot Path, where most of the work in the application was performed. また、このビューには個別の作業を最も多く実行していた関数の一覧が表示され、サンプリング セッションの特定のセグメントに焦点を当てるために使用できるタイムライン グラフが提供されます。The view also lists the functions that were performing the most individual work, and provides a timeline graph you can use to focus on specific segments of the sampling session.

サンプリングで必要なデータを得ることができない場合は、プロファイリング ツールに用意された他の収集方法を使用して、必要に応じた別の種類の情報を取得できます。If Sampling does not give you the data that you need, other profiling tools collection methods provide different kinds of information that might be helpful to you. これらの他の方法の詳細については、「方法: 収集方法を選択する」を参照してください。For more information about these other methods, see How to: Choose Collection Methods.

ヒント

Windows 関数を呼び出すコードをプロファイリングする場合は、最新の .pdb ファイルを入手しておく必要があります。If you profile code that calls Windows functions, you should make sure that you have the most current .pdb files. これらのファイルがない場合、レポート ビューに暗号のようなわかりにくい Windows 関数名が一覧表示されます。Without these files, your report views will list Windows function names that are cryptic and difficult to understand. 必要なファイルがあることを確認する方法の詳細については、「方法 : Windows シンボル情報を参照する」を参照してください。For more information about how to make sure that you have the files you need, see How to: Reference Windows Symbol Information.

パフォーマンス セッションの作成と実行Create and run a performance session

分析対象のデータを取得するには、まずパフォーマンス セッションを作成して、そのセッションを実行する必要があります。To get the data that you need to analyze, you must first create a performance session and then run the session. パフォーマンス ウィザードを使用すると、その両方を実行できます。The Performance Wizard lets you do both.

Windows デスクトップ アプリまたは ASP.NET アプリをプロファイルしていない場合、他のプロファイリング ツールの 1 つを使用する必要があります。If you are not profiling a Windows desktop app or ASP.NET app, you must use one of the other profiling tools. プロファイリング ツール」を参照してください。See Profiling Tools.

パフォーマンス セッションを作成して実行するにはTo create and run a performance session

  1. Visual Studio でソリューションを開きます。Open the solution in Visual Studio. 構成を [リリース] に設定します。Set the configuration to Release. (ツールバーで、既定で [デバッグ] に設定されている [ソリューション構成] ボックスを見つけます。(Find the Solution Configurations box on the toolbar, which is set to Debug by default. これを [リリース] に変更します。)Change it to Release.)

    重要

    使用しているコンピューターの管理者でない場合、プロファイラーを使用している間は Visual Studio を管理者として実行する必要があります。If you are not an administrator on the computer that you are using, you should run Visual Studio as an administrator while you are using the profiler. Visual Studio アプリケーションのアイコンを右クリックしてから、[管理者として実行] をクリックします。(Right-click the Visual Studio application icon, and then click Run as administrator.

  2. [デバッグ] メニューで、[プロファイラー] を選択し、[パフォーマンス プロファイラー] を選択します。On the Debug menu, select Profiler, and then select Performance Profiler.

  3. [パフォーマンス ウィザード] オプションを選択して、[開始] をクリックします。Check the Performance Wizard option, and click Start.

  4. [CPU サンプリング (推奨)] オプションを選択して、[完了] をクリックします。Check the CPU Sampling (recommended) option and click Finish.

  5. アプリケーションが起動し、プロファイラーによるデータの収集が開始されます。Your application starts and the profiler starts to collect data.

  6. パフォーマンス上の問題が存在する可能性のある機能を実行します。Exercise the functionality that might contain performance issues.

  7. 通常の方法でアプリケーションを終了します。Close the application as you usually would.

    アプリケーションの実行が終了すると、Visual Studio のメイン ウィンドウにプロファイリング データの [概要] ビューが表示され、パフォーマンス エクスプローラーのウィンドウに新しいセッションのアイコンが表示されます。After you finish running the application, the Summary view of the profiling data appears in the main Visual Studio window and an icon for the new session appears in the Performance Explorer window.

手順 2: サンプリング データの分析Step 2: Analyze Sampling data

パフォーマンス セッションの実行が終了すると、Visual Studio のメイン ウィンドウにプロファイリング レポートの [概要] ビューが表示されます。When you finish running a performance session, the Summary view of the profiling report appears in the main window in Visual Studio.

ここでは、まずホット パスを調べてから、最も多くの作業を行っている関数の一覧を調べ、最後に [概要] ビューのタイムラインを使用して他の関数を個別に調べることをお勧めします。We recommend that you begin analyzing your data by examining the Hot Path, then the list of functions that are doing the most work, and finally by focusing on other functions by using the Summary Timeline. また、[エラー一覧] ウィンドウでプロファイリングに関する推奨事項と警告を確認することもできます。You can also view profiling suggestions and warnings in the Error List window.

ただし、サンプリング方式で必要な情報を得ることができない場合もあります。Be aware that the sampling method might not give you the information that you need. たとえば、サンプルが収集されるのは、アプリケーションがユーザー モードのコードを実行しているときだけです。For example, samples are collected only when the application is executing user mode code. このため、入出力処理など一部の機能は、サンプリングではキャプチャされません。Therefore, some functionality, such as input and output operations, is not captured by sampling. プロファイリング ツールには、重要なデータを個別に分析するための収集方法がいくつか用意されています。The Profiling Tools provide several collection methods that can enable you to focus on the important data. 他の方法の詳細については、「方法: 収集方法を選択する」を参照してください。For more information about the other methods, see How to: Choose Collection Methods.

図中の番号は、前に示した各手順に対応しています。Each numbered area in the figure relates to a step in the procedure.

サンプリングの概要レポート ビューSummary report view for sampling

サンプリング データを分析するにはTo analyze sampling data

  1. [概要] ビューの [ホット パス] には、アプリケーションのコール ツリーのうち、包括サンプルの値が最も高い分岐が表示されます。In the Summary view, the Hot Path shows the branch of your application's call tree with the highest inclusive samples. これは、データ収集時点で最も頻繁に実行された実行パスです。This is the execution path that was most active when data was collected. 包括値が高いということは、そのコール ツリーを生成したアルゴリズムを最適化できる可能性があることを示します。High inclusive values can indicate that the algorithm that generates the call tree can be optimized. そのため、パス内の最も下位にあるコード内の関数を調べます。Find the function in your code that is lowest in the path. ただし、パスにはシステム関数や外部モジュールの関数が含まれている場合もあります。Notice that the path can also include system functions or functions in external modules.

    プロファイラー ホット パスProfiler Hot Path

    1. [包括サンプル] は、その関数、およびその関数によって呼び出された関数によって実行された作業の量を示します。Inclusive Samples indicate how much work was done by the function and any functions called by it. 包括カウントが高い関数は、全体的に見て最も負荷の高い関数です。High inclusive counts point to the functions that are most expensive overall.

    2. [排他サンプル] は、関数本体内のコードによって実行された作業の量を示しますが、その関数から呼び出された関数によって実行された作業は含まれません。Exclusive Samples indicate how much work was done by the code in the function body, excluding the work done by functions that were called by it. 排他カウントが高い部分は、関数自体の中でパフォーマンス上のボトルネックとなっている可能性があります。High exclusive counts may indicate a performance bottleneck within the function itself.

  2. 関数名をクリックして、プロファイリング データの [関数の詳細] ビューを表示します。Click the function name to display the Function Details view of the profiling data. [関数の詳細] ビューには、選択した関数のプロファイリング データをグラフィカルに示した図が表示され、その関数を呼び出したすべての関数、および選択した関数によって呼び出されたすべての関数が示されます。The Function Details view presents a graphical view of the profiling data for the selected function, showing all the functions that called that function and all the functions that were called by the selected function.

    • 呼び出し元関数および呼び出し先関数のブロックのサイズは、その関数によって行われた呼び出し、またはその関数に対する呼び出しの相対的な頻度を表します。The size of the blocks of the calling and called functions represent the relative frequency that the functions called or were called.

    • 呼び出し元関数または呼び出し先関数の名前をクリックすると、その関数の詳細情報が [関数の詳細] ビューに表示されます。You can click the name of a calling or called function to make it the selected function of the Function Details view.

    • [関数の詳細] ウィンドウの下側のウィンドウには、関数のコード本体が表示されます。The lower pane of the Function Details windows displays the function code itself. コードを調べてパフォーマンスを最適化できる可能性があることがわかった場合は、ソース ファイル名をクリックして、Visual Studio エディターでそのファイルを開きます。If you examine the code and find an opportunity to optimize its performance, click the source file name to open the file in the Visual Studio editor.

  3. 分析を続けるには、[表示] ドロップダウン リストの [概要] をクリックして、[概要] ビューに戻ります。To continue your analysis, return to the Summary view by selecting Summary from the View drop-down list. 次に [最も頻繁に個別の作業を実行している関数] の関数を調べます。Then examine the functions in Functions Doing the Most Individual Work. この一覧には、排他サンプルの値が最も高い関数が表示されます。This list displays the functions with the highest exclusive samples. これらの関数の関数本体のコードは、非常に多くの作業を実行していたコードであるため、最適化できる可能性があります。The code in the function body of these functions performed significant work and you might be able to optimize it. 特定の関数をさらに分析するには、関数名をクリックして、[関数の詳細] ビューで表示します。To further analyze a particular function, , click the function name to display it in the Function Details view.

    実行頻度の高い関数の一覧List of functions doing the most work

    プロファイリング実行の調査をさらに続けるには、[概要] ビューのタイムラインを使用して、選択したセグメントから [ホット パス][最も頻繁に個別の作業を実行している関数] を表示することにより、プロファイリング データの特定のセグメントを再分析します。To continue your investigation of the profiling run, you can reanalyze a segment of the profiling data by using the timeline in the Summary view to show you the Hot Path and Functions Doing Most Individual Work from a selected segment. たとえば、タイムラインの比較的小規模なピーク部分を個別に調べることより、プロファイリング実行全体の分析ではわからなかった負荷の高いコール ツリーや関数が明らかになる場合があります。For example, focusing on a smaller peak in the timeline might reveal expensive call trees and functions that were not shown in the analysis of the entire profiling run.

    セグメントを再分析するには、概要ビューのタイムラインのボックス内のセグメントを選択し、[選択項目でフィルター] をクリックします。To reanalyze a segment, select a segment inside the Summary Timeline box and then click Filter by Selection.

    パフォーマンスの概要ビューのタイムラインPerformance Summary view timeline

  4. プロファイラーでは、プロファイリング実行を改善する方法の提案と、考えられるパフォーマンスの問題の特定を行うために規則のセットも使用します。The profiler also uses a set of rules to suggest ways of improving the profiling run and to identify possible performance problems. 問題が見つかった場合は、[エラー一覧] ウィンドウに警告が表示されます。If an issue is found, a warning is displayed in the Error List window. [エラー一覧] ウィンドウを開くには、[表示] メニューの [エラー一覧] をクリックします。To open the Error List window, on the View menu click Error List.

    • [関数の詳細] ビューで警告が発生した関数を確認するには、警告をダブルクリックします。To see the function that raised a warning the Function Details view, double-click the warning.

    • 警告に関する詳細を表示するには、エラーを右クリックし、[エラーのヘルプを表示] をクリックします。To view detailed information about the warning, right-click the error and then click Show Error Help

手順 3: コードの修正とセッションの再実行Step 3: Revise code and rerun a session

1 つ以上の関数を特定して最適化したら、プロファイリングを再実行してデータを比較することにより、変更によってアプリケーションのパフォーマンスにどのような違いが生じたかを確認できます。After you find and optimize one or more functions, you can repeat the profiling run and compare the data to see the difference that your changes have made to the performance of your application.

コードを修正してプロファイラーを再実行するにはTo revise code and rerun the profiler

  1. コードを変更します。Change your code.

  2. パフォーマンス エクスプローラーを開くには、[デバッグ] メニューで、[プロファイラー][パフォーマンス エクスプローラー][パフォーマンス エクスプローラーの表示] の順にクリックします。To open the Performance Explorer, on the Debug menu click Profiler, then Performance Explorer and then click Show Performance Explorer.

  3. パフォーマンス エクスプローラーで、再実行するセッションを右クリックし、[プロファイルを使用して起動] をクリックします。In the Performance Explorer, right-click the session that you want to rerun, and then click Launch with Profiling.

  4. セッションを再実行すると、そのセッションに対応する別のデータ ファイルが、パフォーマンス エクスプローラー[レポート] フォルダーに追加されます。After you rerun the session, another data file is added to the Reports folder for the session in Performance Explorer. 前のプロファイリング データと新しいプロファイリング データの両方を選択して右クリックし、[パフォーマンス レポートの比較] をクリックします。Select both the original and new profiling data, right-click the selection, and then click Compare Performance Reports.

    新しいレポート ウィンドウが開き、比較の結果が表示されます。A new report window opens, displaying the results of the comparison. 比較ビューの使用方法の詳細については、「方法: パフォーマンス データ ファイルを比較する」を参照してください。For more information about how to use the comparison view, see How to: Compare Performance Data Files.

関連項目See Also

パフォーマンス エクスプローラー Performance Explorer
はじめに Getting Started
概要Overviews
Visual Studio のプロファイルProfiling in Visual Studio
プロファイリング機能ツアーProfiling Feature Tour