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

性能を測るための仕組みを入れたことで、測りたいプログラムの動きそのものが変わってしまう現象を何と呼ぶか。

  1. Aキャッシュコヒーレンシ
  2. Bプローブ効果(観測効果)
  3. Cパイプライン処理
答えと解説を見る

正解:B. プローブ効果(観測効果)

ログを出力する、時間を測るコードを入れる、デバッガで止める、といった測定のための処理は、それ自体が時間やキャッシュを使い、タイミングを変えます。そのため、測った結果が測らないときの動きと違ったり、データ競合のようなタイミングに依存する不具合が測るときだけ消えたりします。サンプリングや性能カウンタのような影響の小さい方法を選び、測定の影響の大きさも確かめることが大切です。

  • A. キャッシュの一貫性の仕組みのことです。
  • B. 正しい。測定の影響を小さくする工夫が必要です。
  • C. 命令を重ねて実行する仕組みのことです。
この分野を解く 分野ページへ

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

  1. プログラムの性能を改善するときの進め方として最も適切なものはどれか。
  2. 大量のデータを処理するプログラムで、最も大きな速度向上が得られる可能性が高い改善はどれか。
  3. ソフトウェアの開発で、変更のたびにベンチマークを自動で実行して結果を記録しておく目的として正しいものはどれか。
  4. ノートパソコンでベンチマークを測ったところ、同じプログラムでも結果が毎回大きくばらついた。CPUの側の原因として考えられるものと、その対策の組み合わせとして正しいものはどれか。
  5. マルチコアやNUMAのシステムで性能を測るとき、スレッドを特定のコアに固定する(アフィニティを設定する)ことがある理由として正しいものはどれか。