WindowsアプリのCPU負荷の計測をする方法をしらべる

負荷計測系記事もくじ
https://tera1707.com/entry/2022/02/06/144447#Profile

内容

この動画を見て学んだことのメモ。

Performance Profiling | Part 1 An Introduction

www.youtube.com

Performance Profiling | Part 2: Choosing the right tool

www.youtube.com

Part1,2は、負荷の計測をするときに、どういう手段があるのか?の紹介と、それぞれをどういうときに使えばよいのか?の説明。

手段には、

  • 診断ツールウインドウ
  • パフォーマンスプロファイラ

というのがある。

診断ツールウインドウというのはコレ。
[デバッグ] > [ウインドウ} > [診断ツール] を選ぶか、Ctrl+Alt+F2 で出てくる。

パフォーマンスプロファイラというのはコレ。
[デバッグ] > [パフォーマンスプロファイラ] を選ぶか、Alt +F2 で出てくる。

パフォーマンスプロファイラと、診断ツールは別物。

診断ツールは、デバッガーとくっついている。
パフォーマンスプロファイラは、デバッガーとはまた別の、単一のツール。

負荷を測るなら、リリースビルドで実行することをお勧めする。
デバッグビルドだと、breakでとめたりとか、デバッグ時の機能のためのモジュールを読み込んだりして、リリースとは異なるパフォーマンスになるため。

ファイルアクセスやネットワークの動きをみるときは診断ツールとプロファイラはあまりかわらないが、 CPUについては、大きく変わる可能性がある。
→CPUをみるときは、リリースビルドでプロファイラ―を使うことをお勧めする。

診断ツールの真価は、デバッグビルドのデバッグ中の問題を解決すること。 プロファイラの真価は、本番環境での計測を行うこと。

プロファイルは、5分以内にするのがおすすめ。 (データ収集量が多すぎて、表示に時間かかりすぎるため)

シンボルの読み込みに時間がかかりすぎる場合は、オプション>デバッグ>シンボル から、シンボルの読み込みをキャッシュされたものに絞るとか、検討したらよい。

備考

MSの方が、「CPU使用率の診断ツールウインドウは、F5でデバッグしたら常に動いてるはずなのに、ほとんどの人が表示後即閉じちゃうんです」と自虐的に言っているのがおもしろい。

今後は閉じないようにしようと思う。
(実際、CPU使用率が変に高いということがあったので、もしその時、この診断ウインドウを見る習慣があったら、リリースしちゃうまえに気づけたかもしれない。)