.net で作る Windows Service

ソフトウェアの起動を監視するサービスを作成して使用しています。

ところが、そのサービスを稼働させている端末(Windows10)で、

CPUの使用率が、そのサービスだけで40%使用してしまっているのです。

 

これは問題。。。監視の方法として

□ ループでプロセス名を監視し、そこに該当するソフトの名称があれば、起動している党判定をする。

 

とうことをしているのですが。

このループを全力で回しているのがよくない。

ということで、ループ一回につき1秒スリープさせてみました。

 

この時点で劇的な改善があり、0.4~0.7%にCPUの使用率は下がりました。

 

そしてループでスリープさせるよりも、と思い、

一秒ごとにタイマーで処理を起動するように変更すると。

0%~0.4% のCPU使用と、大幅に改善することができました。

ループは回しすぎない。(必要がなければ)ということでしたね。