回答編集履歴

1 もう少し具体的な方法を追記

hikochang

hikochang score 592

2017/02/05 00:08  投稿

WMIはメモリリークやハンドルリークなど多くの問題を抱えています。長時間起動し続ける環境でWMIを使用する場合は定期的にWMIを強制終了する必要があります。
今回の関数がそういった対象の関数かわかりませんが、以前別の関数を呼び出しているとメモリがどんどん増えていく現象があり、Windows OSを作っている会社から「定期的にプロセスを落としてください、再度関数を呼び出すと自動で起動します」といった感じの回答をもらったことがあります。
WMIを使っているうちに徐々に負荷が高くなっていくようでしたら、定期的にWMIのプロセスを強制終了したほうが良いです。
WMIを使っているうちに徐々に負荷が高くなっていくようでしたら、定期的にWMIのプロセスを強制終了したほうが良いです。
GetProcessesByNameでWmiPrvSEを探し、PrivateMemorySize64が一定値以上大きくなった場合にKill()します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る