性能評価・プロファイリング
あるプログラムが計算律速かメモリ律速かを確かめる方法として、CPUの周波数を変えて実行時間を測った。メモリ律速なら一般にどのような結果になるか。
- A周波数に反比例して、実行時間が短くなる
- B周波数を上げても実行時間はあまり短くならない
- C周波数を上げると、実行時間が長くなる
答えと解説を見る
正解:B. 周波数を上げても実行時間はあまり短くならない
計算律速のプログラムは、CPUの中の計算に時間を使っているので、周波数を1.5倍にすると実行時間はほぼ1/1.5になります。メモリ律速のプログラムは、主記憶からデータが届くのを待つ時間が大部分で、その待ち時間はCPUの周波数を上げても変わらないので、実行時間はあまり変わりません。性能カウンタと合わせてこの性質を使うと、どちらの改善に力を入れるべきかが分かります。
- A. それは計算律速の場合の結果です。
- B. 正しい。メモリの速さはCPUの周波数で変わらないからです。
- C. 周波数を上げて遅くなることは普通ありません。