Windows プロセスのどの関数がCPUを多く使っているか調べる (Windows Performance Analyzer)

f:id:castaneai:20170918165614p:plain

explorer.exe のCPU使用率がずっと25%ぐらいになって困った。しかし「とりあえずクリーンインストール」という考え方だと再発したときに対処できないので、原因が知りたい

Linuxでは perf コマンドというものがあり、どのような関数が多くCPUを使っているのか ランキング形式で見ることができる。

perf command 出典元 : Using Performance Counters for Linux – Anton's Blog

これに似たようなことをWindowsでもできれば、と思って情報を集めた。

結果、2つのツールが使えることがわかった。

名前 役割
Windows Performance Recorder 一定期間のパフォーマンス情報を記録するツール
Windows Performance Analyzer Recorderで記録したファイルの中身を見るツール

これらのツールは Windows 10 SDKの一部みたいなので、SDKをインストール。 インストールするものを選ぶ画面で Windows Performance ToolKit みたいな名前のものを選べばOK

インストール後、スタートメニューで perform と検索したらふたつともすぐに見つかった

f:id:castaneai:20170918170438p:plain

Recorderで記録

Recorderの使い方はとても簡単で、CPU使用率系を取りたい場合は CPU Usage にチェックを入れて、Start を押すだけで記録開始となる。 記録し終わったら、Save を押す。

f:id:castaneai:20170918170900p:plain

Analyzer で結果を見る

つぎに、Analyzerで記録したファイルを開く。 初期状態では Symbols Disabled と表示されていて関数名が見えないことがあるが、これは 上メニューの Trace > Load Symbols を選択してシンボル情報を読み込んであげたらOK f:id:castaneai:20170918165614p:plain

まとめ

  • Windowsにおいて、プロセスごとの負荷が高い関数を調べるためには Windows Performance Toolkit を使う
  • SDKを入れるだけで良いので、気軽にできてとてもいい!