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

プログラムの実行時間を測るとき、同じ測定を何回も繰り返し、最初の数回の結果を除くことが多い理由として正しいものはどれか。

  1. A最初の数回は、計算の結果が必ず間違うから
  2. B最初はキャッシュが空だったり、ファイルの読み込みや実行時のコンパイルが行われたりして遅く、測定のばらつきもあるから
  3. C同じ測定を繰り返すと、CPUが速くなる回路を作るから
答えと解説を見る

正解:B. 最初はキャッシュが空だったり、ファイルの読み込みや実行時のコンパイルが行われたりして遅く、測定のばらつきもあるから

最初の実行では、キャッシュやTLB、分岐予測器が空の状態から始まり、ファイルがOSのキャッシュになくディスクから読む必要があり、JITコンパイラを使う言語では機械語への変換も行われます。そのため最初の数回は遅くなります。また、他のプログラムや割り込み、温度による周波数の変化などで測定はばらつくので、何回も測って平均や中央値、ばらつきの大きさを示すことが大切です。

  • A. 結果は正しく、時間が違うだけです。
  • B. 正しい。ウォームアップと呼ばれます。
  • C. 回路が変わることはありません。
この分野を解く 分野ページへ

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

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