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

非常に短い処理の時間を、1回だけ測ろうとしたときの問題と、その対策の組み合わせとして正しいものはどれか。

  1. A短い処理は時間がかからないので、測る必要がない
  2. B短い処理を測ると、CPUが壊れる
  3. C時計の分解能や時刻を読む手間に比べて処理が短すぎ、正確に測れない。処理を多数回繰り返して合計の時間を測り、回数で割る
答えと解説を見る

正解:C. 時計の分解能や時刻を読む手間に比べて処理が短すぎ、正確に測れない。処理を多数回繰り返して合計の時間を測り、回数で割る

時刻を読む関数には、時計の刻みの細かさ(分解能)の限界と、関数を呼ぶこと自体にかかる時間があります。測りたい処理がこれらと同じくらいか短いと、結果はほとんど測定の誤差になります。処理を何千回、何万回と繰り返して全体の時間を測り、回数で割れば、1回あたりの時間を正確に見積もれます。ただし繰り返すとキャッシュに乗りやすくなるなど、実際の使い方と条件が変わる点には注意します。

  • A. 短い処理でも、何度も呼ばれれば大きな時間になります。
  • B. CPUが壊れることはありません。
  • C. 正しい。測定の手間の影響を小さくできます。
この分野を解く 分野ページへ

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

  1. 実行時間の測り方のうち、「壁時計時間」と「CPU時間」の違いとして正しいものはどれか。
  2. サーバの性能を表すスループットとレイテンシの説明として正しいものはどれか。
  3. Webのサービスの応答時間を評価するとき、平均の値だけでなく99パーセンタイルの値(遅い方から1%の境目)を見ることが多い理由として正しいものはどれか。
  4. あるサーバに毎秒100件の要求が届き、1件の処理に平均0.2秒かかる(定常状態とする)。サーバの中で同時に処理中の要求は平均何件か(リトルの法則)。
  5. サーバの使用率(忙しい時間の割合)が100%に近づくと、要求の待ち時間はどうなるか。