プログラムの起動が遅い原因の調査

Process Explorer を使って起動が遅い原因を特定する方法

更新日: 2011 年 5 月 25 日

使用ツール

  • Process Explorer
    プロセスが開いたファイル、レジストリ キーなどのオブジェクト、読み込んだ DLL などを調べます。この非常に強力なユーティリティでは、各プロセスの所有者も表示できます。

トラブルの状況

新しくプログラムを起動しようとしたところ、とても時間がかかるようになりました。原因を調べるためにはどうしたらよいでしょうか?

解決方法

プログラムの起動が遅い場合、新しく起動するプログラムそのものに問題があるのか、それとも既に起動しているプログラムがプロセッサやメモリなどのリソースを使い果たしているのかを確認する必要があります。Process Explorer では、[View] - [System Information] メニューからリソースの利用状況を確認することができます。

図 1: Process Explorer の [System Information] Summary タブ画面

[System Information] 画面を見ると、CPU の利用状況 (CPU Usage) が 100% になっていることが確認できます。そこで、Process Explorer の画面から、各プロセスの CPU 利用状況を確認します。

図 2: Process Explorer の各プロセスの CPU 利用状況画面

すると、CPUStress.exe プロセスが 95.58% の CPU を利用していることが、CPU 列から確認できます。このプロセスが不要であれば、右クリックから [Kill Process] をクリックして終了します。すると、CPU の利用状況は 14.95% まで改善されました。

図 3: CPUStress.exe プロセスを [Kill Process] 実行した後の Process Explorer の [System Information] Summary タブ画面

この状態で、もう 1 度プログラムを起動すると、今度は早くプログラムが起動しました。よって、既に起動しているプロセス CPUStress.exe が問題だったことがわかりました。

CPU 以外の問題に対峙

[System Information] から、CPU Usage を参照することで、CPU の利用状況に問題があることを確認しました。もし CPU 以外のリソースが多く使われていることが問題である場合、[System Information] から、[Physical] 部分を参照することで物理メモリの利用状況、[I/O Bytes] 部分を参照することでディスクのアクセス状況、[Network Bytes] 部分を参照することでネットワークの利用状況をそれぞれ確認できます。そして、メモリ、ディスク、ネットワークのうち、どの部分に問題があるか確認できたならば、Process Explorer からどのプロセスがメモリ、ディスク、ネットワークを多く利用しているか確認すれば、CPU 以外の問題にも対処できるようになります。

ページのトップへ