チュートリアル: インストルメンテーションを使ったコマンド ライン プロファイリングWalkthrough: Command-Line Profiling Using Instrumentation

このチュートリアルでは、.NET Framework.NET Framework のスタンドアロン アプリケーションのプロファイルにより、プロファイル ツールのインストルメンテーション メソッドを使用して、詳細なタイミング データおよび呼び出し数データを収集する方法を説明します。This walkthrough takes you through profiling a .NET Framework.NET Framework stand-alone application to collect detailed timing and call count data by using the instrumentation method of the Profiling Tools. このチュートリアルでは、次のタスクを行います。In this walkthrough, you will accomplish the following tasks:

  • VSInstr コマンド ライン ツールを使用して、インストルメントされたバイナリを生成する。Use the VSInstr command line tool to generate instrumented binaries.

  • VSPerfCLREnv ツールを使用して .NET プロファイル データを収集するように環境変数を設定する。Use the VSPerfCLREnv tool to set the environment variables to collect .NET profiling data.

  • VSPerfCmd ツールを使用して、プロファイル データを収集する。Use the VSPerfCmd tool to collect profiling data.

  • VSPerfReport ツールを使用して、プロファイル データのファイル ベースのレポートを生成する。Use the VSPerfReport tool to generate file-based reports of the profiling data.

必須コンポーネントPrerequisites

  • Visual Studio アプリケーション ライフサイクル管理Visual Studio Application Lifecycle Management

  • C# についての中級レベルの知識Intermediate understanding of C#

  • コマンドライン ツールの操作についての中級レベルの知識Intermediate understanding of working with command-line tools

  • PeopleTrax サンプルのコピーA copy of the PeopleTrax Sample

  • プロファイリングによって得られた情報を操作するには、デバッグ シンボル情報を使用できるようにしておくことをお勧めします。To work with the information provided by profiling, it is best to have debugging symbol information available. 詳細については、「方法: Windows シンボル情報を参照する」を参照してください。For more information, see How to: Reference Windows Symbol Information.

インストルメンテーション メソッドを使用したコマンド ライン プロファイルCommand Line Profiling Using the Instrumentation Method

インストルメンテーションとは、プローブ関数を含むプロファイルされたバイナリのバージョンを特別に構築するプロファイル方法です。プローブ関数はインストルメントされたモジュール内の関数に制御が渡されるときと、関数から制御が返されるときのタイミング情報を収集します。Instrumentation is a profiling method by which specially built versions of the profiled binaries contain probe functions that collect timing information at the entry and exit to functions in an instrumented module. このプロファイル方法は、サンプリングよりも深くプログラムに入り込むので、オーバーヘッドが大きくなります。Because this method of profiling is more invasive than sampling, it incurs a greater amount of overhead. インストルメントされたバイナリはデバッグまたはリリース バイナリよりも大きく、配置向けではありません。Instrumented binaries are also larger than debug or release binaries and are not intended for deployment.

注意

インストルメントされたバイナリを顧客に送信しないでください。Do not send instrumented binaries to your customers. インストルメントされたバイナリには、さまざまなリスクが存在します。Instrumented binaries can contain several risks. セキュリティ上のリスクはもちろん、バイナリにはアプリケーションのリバース エンジニアリングを容易に行うことができてしまう情報が含まれています。The binaries include information that makes your application easier to reverse engineer, as well as security risks.

インストルメンテーション メソッドを使用して PeopleTrax アプリケーションをプロファイルするにはTo profile the PeopleTrax application by using the instrumentation method

  1. PeopleTrax サンプル アプリケーションをインストールして、リリース バージョンをビルドします。Install the PeopleTrax sample application and build the Release version.

  2. コマンド プロンプト ウィンドウを開いて、ローカル パス環境変数にプロファイル ツール ディレクトリを追加します。Open a command prompt window and add the Profiling Tools directory to the local Path environment variable.

  3. 作業ディレクトリを PeopleTrax バイナリを含むディレクトリに変更します。Change the working directory to the directory containing the PeopleTrax binaries.

  4. ファイル ベース レポートを含むディレクトリを作成します。Create a directory to contain the file based reports. 次のコマンドを入力します。Type the following command:

    md Reports  
    
  5. VSInstr コマンドライン ツールを使用して、アプリケーションにバイナリをインストルメント化します。Use the VSInstr command-line tool to instrument the binaries in the application. 次のコマンドを別々のコマンド ラインに入力します。Type the following commands on separate command lines:

    VSInstr PeopleTrax.exe  
    VSInstr PeopleTrax.exe  
    VSInstr People.dll  
    VSInstr Person.dll  
    VSInstr Operation.dll  
    

    : 既定では、VSInstr はインストルメントされていない元のファイルのバックアップを保存します。Note By default, VSInstr saves a non-instrumented backup of the original file. バックアップ ファイルの名前には、.orig という拡張子が付きます。The backup file name has the extension .orig. たとえば、元のバージョンの "MyApp.exe" は、"MyApp.exe.orig." として保存されます。For example, the original version of "MyApp.exe" would be saved as "MyApp.exe.orig."

  6. 次のコマンドを入力し、適切な環境変数を設定します。Type the following command to set the appropriate environment variables:

    VsPerfCLREnv /traceon  
    
  7. プロファイラーを開始するには、次のコマンドを入力します。To start the profiler, type the following command:

    VsPerfCmd /start:trace /output:Reports\Report.vsp  
    
  8. プロファイラーをトレース モードで開始して、インストルメント化されたバージョンの PeopleTrax.exe プロセスを実行し、データを収集します。After you start the profiler in trace mode, run the instrumented version of the PeopleTrax.exe process to collect data.

    PeopleTrax アプリケーション ウィンドウが表示されます。The PeopleTrax application window appears.

  9. [Get People] をクリックします。Click Get People.

    PeopleTrax データ グリッドにデータが設定されます。The PeopleTrax data grid populates with data.

  10. [データのエクスポート] をクリックします。Click Export Data.

    メモ帳が開かれ、PeopleTrax アプリケーションの人名リストを含む新しいファイルが表示されます。Notepad starts and displays a new file that contains a list of people from the PeopleTrax application.

  11. メモ帳を閉じてから、PeopleTrax アプリケーションを閉じます。Close Notepad, and then close the PeopleTrax application.

  12. プロファイラーをシャットダウンします。Shut down the profiler. 次のコマンドを入力します。Type the following command:

    VSPerfCmd /shutdown  
    
  13. 次のコマンドを入力し、環境変数をリセットします。Type the following command to reset the environmental variables:

    VSPerfCLREnv /off  
    
  14. VSPerfReport ツールを使用して、コンマ区切り値 (.csv) レポート ファイルを生成します。Use the VSPerfReport tool to generate or comma-separated value (.csv) report files. 型:Type:

    VSPerfReport Reports\Report.vsp /output:Reports /summary:all  
    

    スプレッドシート プログラムで生成されたレポートを分析できます。または、Visual StudioVisual Studio IDE を使用して、Report.vsp ファイル内のプロファイル データを分析することもできます。You can analyze the generated reports in a spreadsheet program, or you can use the Visual StudioVisual Studio IDE to analyze the profiling data in the Report.vsp file. 詳細については、「パフォーマンス ツール データの分析」を参照してください。For more information, see Analyzing Performance Tools Data.

参照See Also

パフォーマンス セッションの概要 Performance Session Overview
コマンドラインからのプロファイル Profiling from the Command-Line
VSPerfCmd VSPerfCmd
サンプリング データ値について Understanding Sampling Data Values
パフォーマンス レポートのビューPerformance Report Views