2014年3月28日金曜日

技術調査:プロセスのCPU使用率を制御する - プロセスの一時停止/再開を繰り返し、目標とするCPU使用率の上限を超えないように制御する

プロセスの一時停止/再開を繰り返し、目標とするCPU使用率の上限を超えないように制御する

プロセスに対して、直接的に一時停止/再開を指示するようなドキュメント化されたAPIはありません。(*1)

ただし、ドキュメント化されていないAPIである「NtSuspendProcess」および「NtResumeProcess」を使用すれば、プロセスに対する一時停止/再開ができるようです。

メリット


  • スレッドレベルで一時停止/再開を行う時のような、スレッドの一時停止/再開に起因するようなプロセスのクラッシュを防止できる。


デメリット


  • 公式にドキュメント化されていないため、将来的に仕様が変更になり、このAPIが使用できなくなる可能性がある。


この機能をC#から使用するには、APIをDLLからインポートする。


*1:
How to suspend/resume a process in Windows? - Stack Overflow
http://stackoverflow.com/questions/11010165/how-to-suspend-resume-a-process-in-windows

delphi - Suspend/resume processes as PsSuspend does - Stack Overflow
http://stackoverflow.com/questions/10153097/suspend-resume-processes-as-pssuspend-does

関連記事
同じラベルをすべて含む記事を読み込み中...