Hardware Interrupts and DPCs のCPU使用率が高い。
PC のファンが煩いので、タスクマネージャーを見たら、Interruts (システムの割り込み)の CPU 使用率が 40% 近くで推移していました。
説明欄には"遅延プロシージャ呼び出しと割り込みサービスルーチン"と表記されています。
一方、Process Explorer で見ると、"Hardware Interrupts and DPCs"と表示されています。
けれども、これ以上の情報は表示されていないため、何が起きているのか分かりません。
そのため、まずは以下の記事を参考に KrView を使って分析を試みました。
…が、このツールは Windows 8 上では実行できませんでした。
次に、Windows Performance Toolkit (WPT) を試すことにしました。
WPT は Windows Assessment and Deployment Kit (Windows ADK) の中に含まれています。
このツールの使い方や注意点は後で書こうと思っていますが、原因が DirectX にある所までは分かったものの、解決には至りませんでした。
2013/4/21 追記:
ずっと監視し続けた訳じゃないので断言できませんが、問題が解消したようです。Interruts が CPU を専有し続けることがなくなりました。
元々、Firefox でインターネット上の動画を閲覧した後ぐらいから問題が起きていたので、以下のいずれかに不具合があるんだろうと推測していました。
この内、Firefox と Flash は前回の調査から今日までの間にバージョンアップしています。
けれども、リリースノートも一読してみたものの、それらしき改修・改善は見当たりません。
うーん、何なんでしょう。。。
ハードウェアアクセラレーションが有効になっているにも関わらず、GPU レンダリングが機能していなかったとか。
もしくは今使っている PC の DirectX のバージョンは元々 9 だったけど、Windows 8 の標準はバージョン 11 なので、互換性の問題が起きていたとか。
まあ、問題が発生しなくなったので、ひとまずこれで良しとします。
参考記事:
- How to get the cause of high CPU usage by DPC / Interrupt - Windows Tips 'n' Tweaks - MSFN
- Windows ハードウェア デベロッパー センター アーカイブ (Windows Drivers)
- Performance - Windows 10 hardware dev
関連記事:
rms-099.hatenablog.jp