チュートリアル : プロファイラー API の使用Walkthrough: Using Profiler APIs

このチュートリアルでは、C# アプリケーションを使用して、Visual StudioVisual Studio プロファイリング ツール API を使用する方法を説明します。The walkthrough uses a C# application to demonstrate how to use the Visual StudioVisual Studio Profiling Tools APIs. プロファイラー API を使用すると、インストルメンテーション プロファイル中に収集されるデータの量を制限することができます。You will use the profiler APIs to limit the amount of data that is collected during instrumentation profiling.

このチュートリアルの手順は、一般に C/C++ アプリケーションに該当します。The steps in this walkthrough generally apply to a C/C++ application. 言語ごとに、適したビルド環境を構成する必要があります。For each language, you will have to configure your build environment appropriately.

通常は、サンプル プロファイルを使用してアプリケーションのパフォーマンスの分析を開始します。Typically, you will start to analyze application performance by using sample profiling. サンプル プロファイルでボトルネックを特定する情報が得られない場合は、インストルメンテーション プロファイリングでより詳細なレベルを理解できる場合があります。If sample profiling does not provide information that pinpoints a bottleneck, instrumentation profiling can provide a greater level of detail. インストルメンテーション プロファイリングは、スレッドの相互作用を調査するのに非常に便利です。Instrumentation profiling is very useful for investigating thread interaction.

ただし、より詳細なレベルということは、より多くのデータが収集されることを意味します。However, a greater level of detail means that more data is collected. インストルメンテーション プロファイリングでは、大きなデータ ファイルが作成される場合があります。You might find that instrumentation profiling creates large data files. また、インストルメンテーションはアプリケーションのパフォーマンスに影響がある場合があります。Also, instrumentation is more likely to impact the performance of the application. 詳細については、「インストルメンテーション データ値について」と「サンプリング データ値について」を参照してください。For more information, see Understanding Instrumentation Data Values and Understanding Sampling Data Values

Visual Studio プロファイラーでは、データの収集を制限できます。The Visual Studio profiler allows you to limit the collection of data. このチュートリアルでは、プロファイラー API を使用してデータの収集を制限する方法の例を説明します。This walkthrough offers an example of how to limit the collection of data by using the profiler APIs. Visual Studio プロファイラーには、アプリケーションからのデータ収集を制御する API があります。The Visual Studio profiler provides an API for controlling data collection from within an application.

ネイティブ コード用の Visual Studio プロファイラー API は VSPerf.dll にあります。For native code, the Visual Studio profiler APIs are in VSPerf.dll. ヘッダー ファイルの VSPerf.h とインポート ライブラリの VSPerf.lib は、Microsoft Visual Studio 9\Team Tools\Performance Tools ディレクトリにあります。The header file, VSPerf.h, and the import library, VSPerf.lib, are located in the Microsoft Visual Studio 9\Team Tools\Performance Tools directory.

マネージ コード用のプロファイラー API は、Microsoft.VisualStudio.Profiler.dll にあります。For managed code, the profiler APIs are in the Microsoft.VisualStudio.Profiler.dll. この DLL は、Microsoft Visual Studio 9\Team Tools\Performance Tools ディレクトリにあります。This DLL is found in the Microsoft Visual Studio 9\Team Tools\Performance Tools directory. 詳細については、「<xref:Microsoft.VisualStudio.Profiler>」を参照してください。For more information, see <xref:Microsoft.VisualStudio.Profiler>.

必須コンポーネントPrerequisites

このチュートリアルでは、ユーザーが選択した開発環境で、デバッグとサンプリングがサポートされていることを前提としています。This walkthrough assumes your choice of development environment is configured to support debugging and sampling. 以下のトピックでは、これらの前提条件の概要について説明しています。The following topics provide an overview of these prerequisites:

方法: 収集方法を選択するHow to: Choose Collection Methods

方法: Windows シンボル情報を参照するHow to: Reference Windows Symbol Information

既定では、プロファイラーが開始されると、プロファイラーがグローバル レベルでデータを収集します。By default, when the profiler is started, the profiler collects data at the global level. 次のコードは、プログラムの開始時に、グローバル プロファイルを無効にします。The following code at the start of the program turns global profiling off.

DataCollection.StopProfile(  
ProfileLevel.Global,  
DataCollection.CurrentId);  

API 呼び出しを使用せず、コマンド ラインでのデータ収集を無効にできます。You can turn off data collection at the command line without the using an API call. 次の手順では、コマンド ライン ビルド環境がプロファイリング ツールを開発ツールとして実行するよう構成されていることが前提です。The following steps assume your command line build environment is configured to run the profiling tools and as your development tools. これには、VSInstr と VSPerfCmd に必要な設定が含まれます。This includes the settings necessary for VSInstr and VSPerfCmd. コマンド ライン プロファイリング ツールに関するページを参照してください。See Command-Line Profiling Tools.

プロファイラー API を使用したデータ収集の制限Limiting Data Collection Using Profiler APIs

プロファイルするコードを作成するにはTo create the code to profile

  1. Visual Studio で、新しい C# プロジェクトを作成するか、希望に応じて、コマンド ライン ビルドを使用します。Create a new C# project in Visual Studio, or use a command line build, depending on your preference.

    注意

    ビルドは、Microsoft Visual Studio 9\Team Tools\Performance Tools ディレクトリにある、Microsoft.VisualStudio.Profiler.dll ライブラリを参照している必要があります。Your build must reference the Microsoft.VisualStudio.Profiler.dll library, located in the Microsoft Visual Studio 9\Team Tools\Performance Tools directory.

  2. プロジェクトに次のコードをコピーし、貼り付けます。Copy and paste the following code into your project:

    using System;  
    using System.Collections.Generic;  
    using System.Text;  
    using Microsoft.VisualStudio.Profiler;  
    
    namespace ConsoleApplication2  
    {  
        class Program  
        {  
            public class A  
            {  
             private int _x;  
    
             public A(int x)  
             {  
              _x = x;  
             }  
    
             public int DoNotProfileThis()  
             {  
              return _x * _x;  
             }  
    
             public int OnlyProfileThis()  
             {  
              return _x + _x;  
             }  
    
             public static void Main()  
             {  
            DataCollection.StopProfile(  
            ProfileLevel.Global,  
            DataCollection.CurrentId);  
              A a;  
              a = new A(2);  
              int x;      
              Console.WriteLine("2 square is {0}", a.DoNotProfileThis());  
              DataCollection.StartProfile(  
                  ProfileLevel.Global,  
                  DataCollection.CurrentId);  
              x = a.OnlyProfileThis();  
              DataCollection.StopProfile(  
                  ProfileLevel.Global,   
                  DataCollection.CurrentId);  
              Console.WriteLine("2 doubled is {0}", x);  
             }  
            }  
    
        }  
    }  
    

Visual Studio IDE でデータを収集して参照するにはTo collect and view data in the Visual Studio IDE

  1. Visual StudioVisual Studio IDE を開きます。Open the Visual StudioVisual Studio IDE. [分析] メニューの [プロファイラー] をポイントし、[新しいパフォーマンス セッション] を選択します。On to the Analyze menu, point to Profiler, and then select New Performance Session.

  2. [パフォーマンス エクスプローラー] ウィンドウで、コンパイルされたバイナリを、[ターゲット] 一覧に追加します。Add your compiled binary to the Targets list in the Performance Explorer window. [ターゲット] を右クリックして [ターゲット バイナリの追加] を選択します。Right-click Targets, and then select Add Target Binary. [ターゲット バイナリの追加] ダイアログ ボックスでバイナリを探し、[開く] をクリックします。Locate the binary in the Add Target Binary dialog box, and then click Open.

  3. [パフォーマンス エクスプローラー] ツールバーで、[メソッド] 一覧の [インストルメンテーション] を選択します。Select Instrumentation from the Method list on the Performance Explorer toolbar.

  4. [プロファイルを使用して起動] をクリックします。Click Launch with Profiling.

    プロファイラーはバイナリをインストルメント化し、実行し、パフォーマンス レポート ファイルを作成します。The profiler will instrument and execute the binary and create a performance report file. パフォーマンス レポート ファイルが、[パフォーマンス エクスプローラー][レポート] ノードに表示されます。The performance report file will appear in the Reports node of the Performance Explorer.

  5. 結果のパフォーマンス レポート ファイルを開きます。Open the resulting performance report file.

    既定では、プロファイラーが開始されると、プロファイラーがグローバル レベルでデータを収集します。By default, when the profiler is started, the profiler will collect data at the global level. 次のコードは、プログラムの開始時に、グローバル プロファイルを無効にします。The following code at the start of the program turns global profiling off.

DataCollection.StopProfile(  
ProfileLevel.Global,  
DataCollection.CurrentId);  

コマンド ラインでデータを収集し表示するにはTo collect and view data at the command line

  1. このチュートリアルで前述した「プロファイルするコードを作成するには」の手順で作成したサンプル コードのデバッグ バージョンをコンパイルします。Compile a debug version of the sample code you created in the "Creating Code to Profile" procedure, earlier in this walkthrough.

  2. マネージ アプリケーションをプロファイリングするには、次のコマンドを入力し、適切な環境変数を設定します。To profile a managed application, type the following command to set the appropriate environment variables:

    VsPefCLREnv /traceonVsPefCLREnv /traceon

  3. VSInstr <filename>.exe のコマンドを入力します。Type the following command:VSInstr <filename>.exe

  4. VSPerfCmd /start:trace /output:<filename>.vsp のコマンドを入力します。Type the following command:VSPerfCmd /start:trace /output:<filename>.vsp

  5. VSPerfCmd /globaloff のコマンドを入力します。Type the following command:VSPerfCmd /globaloff

  6. プログラムを実行します。Execute your program.

  7. VSPerfCmd/shutdown のコマンドを入力します。Type the following command:VSPerfCmd /shutdown

  8. VSPerfReport /calltrace:<filename>.vsp のコマンドを入力します。Type the following command:VSPerfReport /calltrace:<filename>.vsp

    現在のディレクトリに、結果のパフォーマンス データが含まれた .csv ファイルが作成されます。A .csv file is created in the current directory with the resulting performance data.

関連項目See Also

<xref:Microsoft.VisualStudio.Profiler><xref:Microsoft.VisualStudio.Profiler>
Visual Studio プロファイラー API リファレンス (ネイティブ) Visual Studio Profiler API Reference (Native)
はじめに Getting Started
コマンド ラインからのプロファイリングProfiling from the Command-Line