メソッドのプロファイルにより、ほとんどのリソースを消費するメソッドを知ることができます。
「プロファイル作成」パースペクティブには、メソッドのプロファイルおよび呼び出し階層が表示されます。 プロファイラーは、定期的にサンプルを取得して 実行中のメソッドを調べます。 頻繁に呼び出されるメソッドまたは完了までに長い時間がかかっているメソッドのみが表示されます。
Health Center において、メソッドの集合は、ツリーと呼ばれる構造に編成されます。 インライン化は、 小規模なメソッドのツリーを呼び出し元のツリーに併合する プロセスです。 インライン化により、頻繁に実行されるメソッド呼び出しが高速化されます。Java アプリケーションの場合、コンパイラーは、final と指定されていないメソッドをインライン化することもあります。 メソッドをインライン化すると、そのメソッドはメソッド・プロファイルに登録されません。 メソッドは短時間だけホットと表示された後、メソッド・プロファイル・テーブルの下部に表示されます。 その結果、呼び出し側メソッドでの消費時間が突然増加します。
プロファイラーは 統計プロファイラーであり、実行されるすべてのメソッドを記録するのではなく、 呼び出しスタックを定期的にサンプリングします。 実行頻度が低いメソッドや短時間で実行されるメソッドは、プロファイル・リストに表示されないことがあります。 ジャストインタイム (JIT) のコンパイラーによってコンパイルされたメソッドのプロファイルは作成されますが、インライン化されたメソッドのプロファイルは作成されません。
コードを最適化したときに大きな効果が得られるのは、ほとんどの時間がアプリケーション・コードの実行で費やされる場合のみです。 入出力、ロック、または ガーベッジ・コレクションで時間を費やしている場合、パフォーマンスのチューニングは、これらの該当する領域で実行してください。Health Center は、問題を起こしそうなガーベッジ・コレクションやロックへの注意を促します。