エンベデッドシステムスペシャリスト 2017年 午前2 問09
問題文
プログラムを構成するモジュールや関数の実行回数、実行時間など、性能改善のための分析に役立つ情報を収集するツールはどれか。
選択肢
ア:エミュレータ
イ:シミュレータ
ウ:デバッガ
エ:プロファイラ(正解)
🔒 解説は解答すると表示されます
プロファイラ【午前2解説】
正解の理由
プログラムの性能を改善するには、どのモジュールや関数が何回実行されたか、どれだけ時間がかかったかを調べる必要があります。こうした実行状況を収集・分析するツールがプロファイラです。
したがって、該当するのはエです。実行時間の長い処理や、呼び出し回数の多い関数を特定し、性能改善の対象を絞り込むのに役立ちます。
解法ステップ
- 設問の目的が「性能改善」であることに注目します。
- 調べたい情報が「実行回数」や「実行時間」であることを確認します。
- プログラムの実行状況や性能情報を収集するツールを選びます。
選択肢別の誤答解説
-
ア:エミュレータ
別のコンピュータや環境の動作を模倣するソフトウェアです。実行環境の再現などに使われますが、性能情報の収集を主な目的とするツールではありません。 -
イ:シミュレータ
実際の装置やシステムの動作をモデル化して模擬するツールです。動作の検証や予測に使われますが、プログラム内の関数ごとの実行時間を分析するものではありません。 -
ウ:デバッガ
プログラムを一時停止したり、変数の値を確認したりして、誤りの原因を調べるツールです。主な目的は不具合の発見・修正であり、性能情報の収集ではありません。 -
エ:プロファイラ
プログラムの実行回数や実行時間などを測定・分析するツールです。設問の説明に合致します。
よくある誤解
-
デバッガとプロファイラは同じではありません。
デバッガは主にプログラムの誤りを調べ、プロファイラは主に性能上の問題を調べます。 -
プロファイラは、遅そうな箇所を推測するためのツールではありません。
実行時の測定結果を基に、改善すべき箇所を見つけます。 -
実行時間だけでなく、呼び出し回数なども分析対象です。
1回の処理が短くても、非常に多く呼び出されることで性能に影響する場合があります。
補足コラム
性能改善では、まずプロファイラで実行状況を測定し、時間のかかる処理や呼び出し回数の多い処理を特定します。そのうえで改善を行い、再度測定して効果を確認します。やみくもにプログラムを書き換えるのではなく、測定結果に基づいて改善することが大切です。
FAQ
Q. プロファイラはプログラムの誤りも見つけますか?
A. 主な目的は性能情報の収集・分析です。誤りの原因を調べるときは、デバッガを使うのが基本です。
A. 主な目的は性能情報の収集・分析です。誤りの原因を調べるときは、デバッガを使うのが基本です。
Q. 実行時間が長い関数を見つけたら、必ず書き換えるべきですか?
A. 必ずしもそうではありません。測定結果を確認し、改善の効果や変更による影響を考慮して判断します。
A. 必ずしもそうではありません。測定結果を確認し、改善の効果や変更による影響を考慮して判断します。
関連キーワード: プロファイラ、性能分析、実行時間、実行回数、デバッガ

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

