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

同じ数の命令を持つ2つのプログラムを、1つは1秒あたり1000百万命令、もう1つは500百万命令の速さで続けて実行した。全体の平均の速さはいくらか。

  1. A750百万命令毎秒
  2. B約707百万命令毎秒
  3. C約667百万命令毎秒
答えと解説を見る

正解:C. 約667百万命令毎秒

それぞれ命令がI個なら、時間はI÷1000とI÷500で、合計は3I÷1000です。全体で2I個の命令をこの時間で実行したので、平均の速さは2I÷(3I÷1000)≒667です。遅い方のプログラムに長い時間がかかるので、平均は遅い方に引き寄せられます。このように、同じ量の仕事についての速さ(率)を平均するときは、算術平均ではなく調和平均を使います。

  • A. 速さを単純に算術平均すると誤ります。
  • B. これは幾何平均で、全体の速さを表しません。
  • C. 正しい。速さの平均は調和平均で求めます。
この分野を解く 分野ページへ

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

  1. 上のような小さなループで計算の速さを測ったところ、Nを大きくしても時間がほとんど0だった。最も考えられる原因はどれか。
  2. プログラムの実行時間を測るとき、同じ測定を何回も繰り返し、最初の数回の結果を除くことが多い理由として正しいものはどれか。
  3. 非常に短い処理の時間を、1回だけ測ろうとしたときの問題と、その対策の組み合わせとして正しいものはどれか。
  4. 実行時間の測り方のうち、「壁時計時間」と「CPU時間」の違いとして正しいものはどれか。
  5. サーバの性能を表すスループットとレイテンシの説明として正しいものはどれか。