呼び出されたメソッド

「呼び出されたメソッド」タブには、強調表示されているメソッドによって呼び出されたメソッドが表示されます。 つまり、タブには、強調表示されているメソッドがその処理を どこで実行しているかが表示されます。

強調表示されたメソッドしか表示されない場合、 そのメソッドによって呼び出されたメソッドはサンプリングされていません。呼び出されたメソッドが短時間で実行されたか、インライン化されているかのいずれかです。 ツリーにメソッドの子がある場合、通常はパーセンテージを合計しても 100% にはなりません。 子メソッドのパーセンテージの合計が 100% を超えることはありません。 パーセンテージの差は、強調表示されているメソッドの本体で費やされた時間を示しています。

次の例では、メソッド JobListeners.done() が 2 つのメソッド newEvent() および doNotify() を 呼び出します。 JobListeners.done() がスタック上に存在した時間の 64.1% は、newEvent() もスタック上に存在しました。 JobListeners.done() がスタック上に存在した時間の 12.8% は、doNotify もスタック上に存在しました。 したがって、時間の 23.1% (つまり 100% -64.1% -12.8%) が JobListeners.done() で費やされたことになります。

Java™ の例: jobListeners.done() によって呼び出されたメソッド
  • done
    • newEvent (64.1%)
    • doNotify (12.8%)
      • notify (96.5%)
        • done
注: パーセンテージはすぐ上の親ノードのみを指しているため、doNotify() がスタック上に存在した時間の 96.5% は、notify() もスタック上に存在したことになります。

パフォーマンスをチューニングする場合、「呼び出されたメソッド」タブは「呼び出しパス」タブほどには役に立ちません。 子の処理に費やされた時間は、親の処理に費やされた時間としてはカウントされません。 非効率的な子をいくつか呼び出している軽量のメソッドは、メソッド・プロファイル・テーブルの上位にはきません。 いずれにしても、通常はすべての非効率的な子メソッドが、メソッド・プロファイル・テーブルに表示されます。



© Copyright IBM Corporation 2007, 2015.
© Copyright 1997, 2015, Oracle and/or its affiliates.