関数とロードオブジェクトについては 3 種類のメトリックが表示されます。 具体的には排他的メトリック、包括的メトリック、および属性メトリックです。 排他的メトリックと包括的メトリックは、メトリックを表示するあらゆる区画で見ることができます。 属性メトリックを見ることができるのは、「呼び出し元-呼び出し先」区画においてだけです。
関数の排他的メトリックは、その関数が呼び出す関数で発生するイベントではなく、その関数自体で発生するイベントで算出されます。
排他的メトリックは、リソースが使用されたり問題が発生していたりするプログラム内の関数、ソース行、または命令をつきとめるのに役立ちます。
排他的メトリックのアイコンは、です。
関数の包括的メトリックは、その関数自体で発生するイベント、その関数が呼び出す関数で発生するイベント、およびその関数が呼び出す関数が呼び出す関数で発生するイベント、というふうに次々と呼び出す関数で発生するイベントで算出されます。 1 つの関数に対する呼び出しによってもたらされるメトリックはすべて、包括的メトリックに含まれます。
包括的メトリックは、リソースが使用されたり問題が発生しているプログラム内の呼び出しツリーをつきとめるのに役立ちます。 関数の高度包括的メトリックとは、1 つの関数とこの関数が呼び出す関数が調査のターゲットであることを意味します。
包括的メトリックのアイコンは、です。
属性メトリックは、関数の包括的メトリックをその呼び出し元と呼び出し先とに分割します。 属性メトリックは、関数の包括的メトリックの内、別の関数との間の呼び出しが起因しているメトリックがどれだけであるかを示します。
関数の呼び出し元にとっての属性メトリックは、この呼び出し元が行った呼び出しが起因する、この関数の包括的メトリックの量です。 関数のすべての呼び出し元の属性メトリックの合計は、この関数の包括的メトリックと同等です。
関数の呼び出し先にとっての属性メトリックは、この呼び出し先への呼び出しによってもたらされる、この関数の包括的メトリックの量です。 呼び出し先の属性メトリックと関数の排他的メトリックとの合計は、関数の包括的メトリックと同等です。
属性メトリックは、特定の問題を起こしたりリソースを使用する原因となるプログラム中の、パスを認識するのに役立ちます。
属性メトリックのアイコンは、です。
関数 C は、関数 D と関数 E を呼び出します。関数 D は、10 秒間実行します。 関数 E は、関数 C から呼び出された場合は 15 秒間実行し、関数 B から呼び出された場合は 10 秒間実行します。 関数 C 自体は、実行に 5 秒かかります。
この例におけるメトリックは、実行時間 (ユーザー CPU 時間) とします。 関数 C の排他時間は 5 秒、関数 D の排他時間は 10 秒、関数 E の排他時間は 25 秒です。 関数 D と E は他の関数を呼び出さないので、これらの関数の包括時間はその排他時間と同等です。
関数 C の包括時間は、関数 C で費やされる時間 (5 秒)、関数 D で費やされる時間 (10 秒)、関数 C からの呼び出しの結果関数 E で費やされる時間 (15 秒) を加算した値です。 その値である 30 秒が、関数 C の包括的メトリックです。
関数 D は、関数 C の包括時間に対し 10 秒を費やします。関数 C の呼び出し先としての関数 D の属性メトリックは、したがって 10 秒です。 関数 E は、関数 C の包括的時間に対し 15 秒を費やします。 関数 C の呼び出し先としての関数 E の属性メトリックは、したがって 15 秒です。
関数 E の包括的時間は、25 秒です。 関数 E の包括的時間の内 15 秒は、関数 C が起因しています。関数 E の呼び出し元としての関数 C の属性メトリックは、15 秒です。 関数 E の包括的時間の残り 10 秒には、関数 B が起因しています。 関数 E の呼び出し元としての関数 B の属性メトリックは、10 秒です。