応用情報技術者試験 平成30年秋 午前問19 解説付き過去問
問題
プログラムの性能を改善するに当たって、関数、文などの実行回数や実行時間を計測して統計を取るために用いるツールはどれか。
正解
解説
プログラムの性能改善に関わるツールを選ぶ問題です。ここでは、プログラムの各部分がどれだけの時間を消費しているかを計測し、それを基に性能分析や最適化を行うツールについて考えます。
- プロファイラの役割
プロファイラはプログラムの実行時間や呼び出し回数などを詳細に記録するツールで、この情報を用いてどの関数がどれだけのCPU時間を消費しているかなどの性能ボトルネックを特定します。プロファイラには、実行時プロファイラと静的プロファイラの二種類があり、実行時プロファイラはプログラム実行中に情報を収集し、静的プロファイラは実行前にコード分析を行います。 - 他のツールとの比較
コンパイラはソースコードを実行可能な機械語に変換するツールで、性能分析とは直接関連しません。デバッガはプログラムのバグを見つけ出し、修正を助けるツールであり、実行時間の計測には使われません。パーサはプログラム言語の文法に従ってソースコードを解析するためのツールで、実行性能の計測とは異なる目的で使用されます。
したがって、実行時間や関数の呼び出し回数などの統計を取り、プログラムの性能を分析するためにはプロファイラが最適なツールです。