応用情報技術者 2018年 秋期 午前2 問19
問題文
プログラムの性能を改善するに当たって、関数、文などの実行回数や実行時間を計測して統計を取るために用いるツールはどれか。
選択肢
ア:コンパイラ
イ:デバッガ
ウ:パーサ
エ:プロファイラ(正解)
プログラムの性能計測ツールの選択【午前2 解説】
要点まとめ
- 結論:プログラムの実行回数や実行時間を計測し統計を取るツールは「プロファイラ」です。
- 根拠:プロファイラは関数や文単位での性能分析を行い、ボトルネック特定に役立ちます。
- 差がつくポイント:デバッガはバグ検出、コンパイラは翻訳、パーサは構文解析であり、性能計測には使いません。
正解の理由
プロファイラはプログラムの実行時に各関数や処理の実行回数や時間を詳細に計測し、どこに時間がかかっているかを明確にします。これにより、性能改善の対象を特定できるため、性能分析に最適なツールです。
よくある誤解
デバッガはプログラムの動作確認やバグ検出に使うため、性能計測には適しません。コンパイラやパーサはプログラムの実行前処理に関わるため、実行時の性能計測はできません。
解法ステップ
- 問題文から「実行回数や実行時間を計測し統計を取る」と性能分析を求めていることを確認。
- 各選択肢の役割を整理する(コンパイラ=翻訳、デバッガ=バグ検出、パーサ=構文解析、プロファイラ=性能計測)。
- 性能計測に該当する「プロファイラ」を選択。
選択肢別の誤答解説
- ア: コンパイラはソースコードを機械語に変換するツールで、性能計測は行いません。
- イ: デバッガはプログラムの動作を追跡しバグを見つけるためのツールで、性能分析には不向きです。
- ウ: パーサはソースコードの構文解析を行うもので、実行時の性能計測はできません。
- エ: プロファイラは実行時の関数や文の実行回数・時間を計測し、性能改善に役立つため正解です。
補足コラム
プロファイラにはサンプリング型と計測型があります。サンプリング型は一定間隔で状態を記録しオーバーヘッドが少なく、計測型は関数の開始・終了時に計測し正確ですがオーバーヘッドが大きい特徴があります。性能改善には両者の使い分けが重要です。
FAQ
Q: プロファイラはどのように性能を計測するのですか?
A: プロファイラは関数の呼び出し回数や実行時間を計測し、どの部分が処理時間を多く消費しているかを分析します。
A: プロファイラは関数の呼び出し回数や実行時間を計測し、どの部分が処理時間を多く消費しているかを分析します。
Q: デバッガとプロファイラの違いは何ですか?
A: デバッガはバグ検出や動作確認に使い、プロファイラは性能分析に特化しています。目的が異なるため使い分けが必要です。
A: デバッガはバグ検出や動作確認に使い、プロファイラは性能分析に特化しています。目的が異なるため使い分けが必要です。
関連キーワード: プロファイラ、性能計測、実行時間分析、ボトルネック解析、プログラム最適化

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

