性能評価・プロファイリング
非常に短い処理の時間を、1回だけ測ろうとしたときの問題と、その対策の組み合わせとして正しいものはどれか。
- A短い処理は時間がかからないので、測る必要がない
- B短い処理を測ると、CPUが壊れる
- C時計の分解能や時刻を読む手間に比べて処理が短すぎ、正確に測れない。処理を多数回繰り返して合計の時間を測り、回数で割る
答えと解説を見る
正解:C. 時計の分解能や時刻を読む手間に比べて処理が短すぎ、正確に測れない。処理を多数回繰り返して合計の時間を測り、回数で割る
時刻を読む関数には、時計の刻みの細かさ(分解能)の限界と、関数を呼ぶこと自体にかかる時間があります。測りたい処理がこれらと同じくらいか短いと、結果はほとんど測定の誤差になります。処理を何千回、何万回と繰り返して全体の時間を測り、回数で割れば、1回あたりの時間を正確に見積もれます。ただし繰り返すとキャッシュに乗りやすくなるなど、実際の使い方と条件が変わる点には注意します。
- A. 短い処理でも、何度も呼ばれれば大きな時間になります。
- B. CPUが壊れることはありません。
- C. 正しい。測定の手間の影響を小さくできます。