NetBeans Profiler 5.5 の使用方法
各種タイマーの使用方法
デフォルトでは、プロファイルされたメソッドで経過した時間 (絶対時間) のみが結果に表示されます。ただし、Profiler では、プロファイルする呼び出しの部分グラフ全体に対して、絶対時間とスレッド CPU 時間の両方を計測することができます。この時間は、対象のスレッドが root メソッドを開始してから終了するまでの時間から、注入された計測コードでの予測経過時間を差し引いたものです。部分グラフ全体の絶対時間は必ず表示されます。一方で、スレッド CPU 時間は、メソッドレベルでのスレッド CPU 時間計測が有効であるか (下記参照)、データ要求時に対象の実行スレッドが呼び出しの部分グラフにない場合のみ表示されます。それ以外の場合は、スレッド CPU 時間が使用できないという警告が Profiler で表示されます。これは純粋に技術上の制約で、将来的には廃止される可能性があります。
マルチスレッドアプリケーションをプロファイルする場合、プロファイル対象のメソッドの絶対時間に加えて、または絶対時間のかわりに、スレッド CPU 時間を計測した方が合理的な場合がよくあります。計測対象として、絶対時間のみ、スレッド CPU 時間のみ、または両方の時間を指定できます。両方のタイマーを有効にすると、ターゲットアプリケーションコードに注入する計測では、アプリケーションメソッドの開始時や終了時にタイマー呼び出しが 1 回ではなく 2 回行われるため、プロファイルのオーバーヘッドが増加します。また、Windows と Linux では、スレッド CPU タイマーの時間分解能は約 10 ミリ秒と大幅に低くなります。絶対時間タイマーの場合は 1 ミリ秒未満の単位になります。そのため、これらのプラットフォームでは、メソッドの実行時間が少なくとも 50 〜 100 ミリ秒未満の場合は、各メソッドに対してスレッド CPU タイマーを使用してもあまり意味はありません。Solaris の場合は状況がはるかに良く、スレッド CPU タイマーの時間分解能は約 1 ミリ秒で、このタイマーの呼び出しに必要な CPU サイクルも Windows より大幅に少なくてすみます (約 10 分の 1)。
関連項目
