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

プログラムの性能を改善するときにプロファイラを使う目的として正しいものはどれか。

  1. Aプログラムの文法の誤りを見つける
  2. Bプログラムの利用者の数を数える
  3. Cプログラムのどの関数や部分が、実行時間の多くを使っているかを調べる
答えと解説を見る

正解:C. プログラムのどの関数や部分が、実行時間の多くを使っているかを調べる

多くのプログラムでは、実行時間の大部分がごく一部のコードで使われています。しかし、どこが遅いかを人が推測すると外れることがよくあります。プロファイラは、関数ごとの実行時間や呼ばれた回数、さらには行ごとや命令ごとの時間を測って示します。アムダールの法則のとおり、時間を多く使っている部分を改善するのが効果的なので、まず測ることが性能の改善の第一歩です。

  • A. 文法の誤りはコンパイラが見つけます。
  • B. 利用者の数とは関係ありません。
  • C. 正しい。改善するべき場所を見つけられます。
この分野を解く 分野ページへ

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

  1. サンプリング方式のプロファイラの特徴として正しいものはどれか。
  2. 関数の入口と出口に時間を測るコードを入れて記録する計測(インストルメンテーション)方式のプロファイラについて正しいものはどれか。
  3. プログラムの性能の分析でいうホットスポットの説明として正しいものはどれか。
  4. プロファイルの結果を表すフレームグラフの読み方として正しいものはどれか。
  5. CPUに内蔵された性能カウンタ(PMU)で数えられるものの例として正しいものはどれか。