性能評価・プロファイリング

プロファイルの結果を表すフレームグラフの読み方として正しいものはどれか。

  1. A各関数の色が、その関数の重要度を表す
  2. B呼び出しの連なりを縦に積み重ね、各関数の横の幅がその関数(と呼び出した先)で使った時間の割合を表す
  3. C横の軸は、プログラムを実行した日付を表す
答えと解説を見る

正解:B. 呼び出しの連なりを縦に積み重ね、各関数の横の幅がその関数(と呼び出した先)で使った時間の割合を表す

フレームグラフでは、下に呼び出し元、上に呼び出し先の関数を積み重ね、サンプリングで記録された回数に比例した幅で描きます。幅の広い箱ほど多くの時間を使っています。上に何も載っていない幅の広い箱は、その関数自身が時間を使っていることを、上にさらに関数が載っていれば呼び出した先で時間を使っていることを示します。どの呼び出しの経路が重いかを一目で見つけられます。

  • A. 色は多くの場合、見分けやすくするためのものです。
  • B. 正しい。幅の広い部分が時間を使っている場所です。
  • C. 横の軸は時間の割合で、日付ではありません。
この分野を解く 分野ページへ

性能評価・プロファイリングのほかの問題

  1. CPUに内蔵された性能カウンタ(PMU)で数えられるものの例として正しいものはどれか。
  2. 性能カウンタで測ったところ、あるプログラムのIPC(1サイクルあたりの命令数)が0.3と非常に低く、最後の段のキャッシュのミスが多かった。最も考えられる状況と対策の組み合わせはどれか。
  3. 性能カウンタで、分岐の予測ミスが非常に多いことが分かった。改善の方法として当てはまるものはどれか。
  4. 性能カウンタを使ったトップダウン分析(Top-down Microarchitecture Analysis)で、CPUの命令を処理する枠の使われ方を分ける大きな分類として正しいものはどれか。
  5. プログラムが遅いのに、CPUの使用率が20%程度と低かった。最も考えられる原因はどれか。