パフォーマンス・データは、いくつかのソースから収集されます。
デバッグ情報および変換レポートを有効にするためには、『必須コンパイラー・オプションによるビルド』に あるセクションを参照してください。
ビルドまたはランタイム環境に単純な変更を加えた結果、実際にはアプリケーションのソース・コードに 変更を加えることなく、そのアプリケーションのパフォーマンスに大きな影響が与えられる場合が頻繁にあります。 ビルドおよびランタイム・ホストは、いくつかの基準 (ハードウェア・レベル、OS レベル、コンパイラー・ バージョン、ビルド・オプションなど) に基づいて分析および「スコアリング」することができます。 システム・スコアカードと呼ばれるレポートが生成されます。これは、優れた アプリケーション・パフォーマンスのために、どのようにシステム構成を改善するかに関する推奨を提供します。
実行中のアプリケーションについて収集された未加工のパフォーマンス・データは、サンプリングに基づく低レベル・システム・ツールで得られます。 例えば tprof は、実行中の命令のメモリー・アドレスが入っている、プロセッサーの命令ポインターの 状態のサンプルを継続的に記録します。 パフォーマンス実行が完了した後、記録されたアドレスを対応するソース・コード行にマッピングし戻すため、コンパイラー・デバッグ情報が使用されます。 サンプリング率は構成可能ですが、一般には、10 ミリ秒ごとに 1 回です。 サンプルはそれぞれ、ティックと呼ばれます。
サンプリング・ベースのパフォーマンス・データ収集には欠点があります。 プロファイリングされているアプリケーションに加え、ターゲット・システム上では、いくつかのプロセスが実行されている可能性があります。 一般に、競合するプロセスにティックの多くが帰属しています。 このため、比較的「静止状態にある」システムを操作するようお勧めします。 パフォーマンス・テスト専用のマシンを用意することが理想的です。
プロファイリングされているアプリケーションに対応するティックは、ホット・スポット・ブラウザーで 「マイ・アプリケーション」ノードの下に表示されます。 その他すべてのティックは、「その他のプロセス」ノードに割り当てられています。 大量のティックが他のプロセスに帰属している場合は、可能であれば、それ以降のパフォーマンス実行においてシステム負荷を減らしてください。
データはサンプリングに基づいているため、サンプルの数を増やすと、収集されるデータの統計的な関連性も大きくなります。 少なくとも 30 秒間 (可能であれば、これよりも長い間)、プロファイリングするアプリケーションを実行するようお勧めします。 より長い時間アプリケーションを実行するための入力セットを選択することによって、または アプリケーションをループで実行するスクリプトを使用することによって、これは可能です。
デフォルトで、ティックは表示されません。 代わりに、有効範囲 (アプリケーションやシステム全体など) に相対的なパーセンテージで、使用されている時間の長さが表されます。 ティックが表示されるようにするには、まず、メインメニューから を選択して 設定ダイアログを開きます。 次に、で 見つかる設定ページにナビゲートします。 「時間データ」の下で、「パーセンテージとティックの両方を表示」を選択します。
呼び出しスタック・サンプリング・データは、低レベル・システム・ツールで収集されます。 このデータは、AIX では procstack から、Linux では OProfile から得られます。
およそ 1 秒に 1 回、アプリケーションの呼び出しスタックがサンプリングされ、そのアプリケーションにおいて 実行中である関数すべてが記録されます。 パフォーマンス実行が完了した後、この情報を呼び出しブラウザーで分析することができます。
XLC コンパイラーには、コンパイルの間に実行された最適化を記述する XML レポート・ファイルを作成する機能があります。 これらのレポートは必ずしも必要ではありませんが、生成しておくと、分析に役立つ詳細が得られます。 これらのレポートから得られる最も役立つ情報は、コンパイルの間にインライン化された関数呼び出しの位置です。