インストルメンテーション データ値についてUnderstanding Instrumentation Data Values

Visual StudioVisual Studioインストルメンテーション プロファイル メソッドは、プロファイリングされたアプリケーションの関数呼び出し、行、命令についての詳しいタイミング情報を記録しますThe instrumentation profiling method of the Visual StudioVisual Studio records detailed timing information for the function calls, lines, and instructions in the profiled application

RequirementsRequirements

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

    インストルメンテーション メソッドは、プロファイリングされたバイナリの、その関数から他の関数に対する各呼び出しの前後の対象の関数の開始時と終了時にコードを挿入します。The instrumentation method injects code at the start and end of target functions in the profiled binary, and before and after each call by those functions to other functions. 挿入されたコードは次のものを記録します。The injected code records the following:

  • この収集イベントとその前の収集イベントの間の間隔。The interval between this collection event and the previous one.

  • オペレーティング システムがその間に操作を実行したかどうか。Whether the operating system has performed an operation during the interval. たとえば、オペレーティング システムはディスクに対して読み取りまたは書き込みを行うこともありますし、対象のスレッドと別のプロセスの別のスレッドとの間の切り替えを行うこともあります。For example, the operating system might read or write to disk, or switch between the target thread and another thread in another process.

    RequirementsRequirements

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

    各間隔について、プロファイラー解析は間隔の最後に存在していた呼び出し履歴を再構築します。For each interval, the profiler analysis reconstructs the call stack that was present at the end of the interval. 呼び出し履歴とは、ある時点でプロセッサ上でアクティブになっている関数のリストです。A call stack is the list of functions that are active on a processor at a point in time. 1 つの関数 (現在の関数) だけがコードを実行しており、それ以外の関数は、現在の関数の呼び出しに至る一連の関数呼び出し (呼び出し履歴) です。Only one function (the current function) is executing code; the other functions are the chain of function calls that resulted in the call to the current function (the call stack).

    間隔が記録されたときの呼び出し履歴上の各関数について、プロファイラー解析は関数の 4 つのデータ値の 1 つ以上に間隔を追加します。For each function on the call stack when the interval was recorded, the profiler analysis adds the interval to one or more of four data values for the function. 解析は、次の 2 つの基準に基づいて間隔を関数のデータ値に追加します。The analysis adds the interval to a data value for a function based on two criteria:

  • 間隔がその関数のコードで発生したか、それとも子関数 (その関数によって呼び出された関数) で発生したか。Whether the interval occurred in the code of the function or in a child function (a function that was called by the function).

  • オペレーティング システムのイベントが間隔内で発生したか。Whether an operating system event occurred in the interval.

    関数またはデータ範囲の間隔のデータ値には、包括経過排他経過アプリケーション包括アプリケーション排他という名前があります。The data values for an interval of a function or data range are named Elapsed Inclusive, Elapsed Exclusive, Application Inclusive, and Application Exclusive:

  • 関数の間隔はすべて、包括経過データ値に追加されます。All intervals of a function are added to the Elapsed Inclusive data value.

  • 間隔がその関数のコード内で (子関数内ではなく) 発生した場合、その間隔は関数の排他経過データ値に追加されます。If the interval occurred in the code of the function and not in a child function, the interval is added to the Elapsed Exclusive data value of the function.

  • オペレーティング システム イベントが間隔内で発生しなかった場合、その間隔はアプリケーション包括データ値に追加されます。If an operating system event did not occur in the interval, the interval is added to the Application Inclusive data value.

  • オペレーティング システム イベントが間隔内で発生せず、間隔が関数コードを直接実行しているときに (つまり子関数内ではなく) 発生した場合、その間隔はアプリケーション排他データ値に追加されます。If an operating system event did not occur in the interval, and the interval occurred in the direct execution of the function code (that is, it did not occur in a child function), the interval is added to the Application Exclusive data value.

    プロファイリング ツールのレポートは、プロファイリング セッション自体の関数、セッションのプロセス、スレッド、バイナリの合計値を集約します。Profiling Tools reports aggregate the total values of the functions in the profiling session itself, and the processes, threads, and binaries of the session.

包括経過値Elapsed Inclusive values

ある関数およびその子関数の実行に費やされた合計時間。The total time that was spent executing a function and its child functions.

包括経過値には、関数コードを直接実行するのに費やされた間隔と、対象関数の子関数の実行に費やされた間隔が含まれます。Elapsed Inclusive values include the intervals that were spent directly executing the function code and the intervals that were spent executing the child functions of the target function. オペレーティング システムの待機を含む関数またはその子関数の間隔も包括経過値に含まれます。Intervals of the function or its child functions that include waiting for the operating system are also included in Elapsed Inclusive values.

排他経過値Elapsed Exclusive values

子関数で費やされた時間を除く、ある関数の実行に費やされた合計時間。The time that was spent executing a function, excluding time that was spent in child functions.

排他経過値には、オペレーティング システム イベントが間隔内で発生したかどうかに関係なく、関数コードを直接実行するのに費やされた間隔が含まれます。Elapsed Exclusive values include the intervals that were spent directly executing the function code, regardless of whether an operating system event occurred in the interval. 対象の関数によって呼び出された子関数で費やされた間隔はすべて排他経過値に含まれません。All intervals spent in child functions that were called by the target function are not included in Elapsed Exclusive values.

アプリケーション包括値Application Inclusive values

ある関数およびその子関数の実行に費やされた時間から、オペレーティング システム イベントで費やされた時間を除いたもの。The time that was spent executing a function and its child functions, excluding time that was spent in operating system events.

アプリケーション包括値には、オペレーティング システム イベントを含む間隔は含まれません。Application Inclusive values do not include intervals that contain operating system events. アプリケーション包括値には、間隔がある関数のコードを直接実行するのに費やされたかまたは対象関数の子関数に費やされたかに関係なく、関数の実行に費やされた他のすべての間隔が含まれます。Application Inclusive values include all other intervals that were spent executing a function, regardless of whether the interval was spent directly executing the function code or was spent in child functions of the target function.

アプリケーション排他値Application Exclusive values

子関数で費やされた時間とオペレーティング システム イベントで費やされた時間を除いた、ある関数の実行に費やされた時間。The time that was spent executing a function, excluding the time that was spent in child functions and the time that was spent in operating system events.

アプリケーション排他値には、オペレーティング システム イベントを含む間隔、または関数によって呼び出された関数の実行に費やされた間隔は含まれません。Application Exclusive values do not include intervals that contain operating system events or intervals that were spent executing functions that were called by the function. アプリケーション排他値には、関数コードを直接実行するのに費やされ、オペレーティング システム イベントを含まなかった間隔だけが含まれます。Application Exclusive values include only those intervals that were spent directly executing the function code and that did not contain an operating system event.

包括経過パーセントElapsed Inclusive percent

プロファイリング セッションの包括経過値の合計に対する関数、モジュール、スレッド、またはプロセスの包括経過値の割合。The percentage of the total Elapsed Inclusive values of the profiling session that were Elapsed Inclusive values of the function, module, thread, or process.

100 * 関数包括経過 / セッション包括経過100 * Function Elapsed Inclusive / Session Elapsed Inclusive

排他経過パーセントElapsed Exclusive percent

プロファイリング セッションの包括経過値の合計に対する関数、モジュール、スレッド、またはプロセスの排他経過値の割合。The percentage of the total Elapsed Inclusive values of the profiling session that were Elapsed Exclusive values of the function, module, thread, or process.

100 * 関数排他経過 / セッション包括経過100 * Function Elapsed Exclusive / Session Elapsed Inclusive

アプリケーション包括パーセントApplication Inclusive percent

プロファイリング セッションのアプリケーション包括値の合計に対する関数、モジュール、スレッド、またはプロセスのアプリケーション包括値の割合。The percentage of the total Application Inclusive values of the profiling session that were Application Inclusive values of the function, module, thread, or process.

100 * 関数アプリケーション包括 / セッション アプリケーション包括100 * Function Application Inclusive / Session Application Inclusive

アプリケーション排他パーセントApplication Exclusive percent

プロファイリング セッションのアプリケーション包括値の合計に対する関数、モジュール、スレッド、またはプロセスのアプリケーション排他値の割合。The percentage of the total Application Inclusive values of the profiling session that were Application Exclusive intervals of the function, module, thread, or process.

100 * 関数アプリケーション排他 / セッション アプリケーション包括100 * Function Application Exclusive / Session Application Inclusive

関連項目See Also

パフォーマンス ツール データを分析する Analyzing Performance Tools Data
方法: 収集方法を選択するHow to: Choose Collection Methods