0

20 のスレッドを実行する Windows サービスがあります。各スレッドはリモート デバイスを管理します。スレッドは基本的に、データベース (SQL Server) にアクセスし、TCP/IP を介してメッセージを送受信するだけです。派手なアルゴリズムや重い処理はありません。このプロセスは、多くのメモリを搭載した 8 コア CPU で 80% を占めています。

私はこのサービスでプロファイラーを実行しませんでしたが、コードを何百万回も見てきました...ループの最後に 500 ミリ秒のスリープがある単なる while ループです。そのため、ループ内のコードは 1 秒間に 2 回以下しか実行されません。

プロセスが I/O バウンドであるかどうか疑問に思っていましたが、なぜこのように CPU 使用率が高いのでしょうか? プロセスの優先度を下げるとどうなりますか?

4

0 に答える 0