事例: フリーソフトを使用する - BES - Battle Encoder Shirase
対象:任意のプロセス(上限3プロセス)
出来ること:
指定したプログラムに対してCPU使用率の上限を設定することができる。
効果:
指定したプログラムのCPU使用率に上限を設定することで、指定したプログラムがCPUを使用しすぎないようにする。
例)
動画処理プログラムのCPU使用率に上限を設定することで、動画処理中に他の作業(Webサイトのブラウジングなど)を行った時の、他の作業の処理速度の低下を抑える。
CPUの利用率設定の実装方法(推測):
指定したプロセスをスリープさせることで、指定したプロセスのCPU使用率が上昇することを抑えていると推測する。
指定したプロセスに対して、スリープの指示と解除を一定間隔で繰り返すことで、CPU使用率の上限を任意の値に設定していると推測する。
このプロセスに対してスリープを指示している期間とそうではない期間の繰り返しのことを「Sleep/Awake Cycle」と呼んでいる。
「Sleep/Awake Cycle」において、スリープの期間が長くなればなるほど、CPU使用率を抑えることができる。
「Sleep/Awake Cycle」において、スリープとそうではない期間の割合は変えずに、その時間的な長さを調整することが可能である。
以下は参考文献の2(公式WebSite)より引用したものである。
引用ここから
Starting from version 1.5.x, you can tweak the sleep/awake cycle (frequency) of BES, in milliseconds. This may be handy for example when you want to throttle a game process while keeping the visual smooth. Try a smaller value like 40 in such a case, instead of the default value, 100. Notice, a 40-millisecond cycle means that the visual can be redrawn, in theory, 25 times a second, allowing a 25-fps movie to play without being jumpy. Do not use a too small value, though (the smaller it gets, the less accurate control you get).
引用ここまで
これより、「Sleep/Awake Cycle」の1サイクルの長さは調整可能であり、ゲームや動画再生のようなリアルタイム処理を要求されるものでは、1サイクルの長さを適切に調整することで、視覚的な滑らかさを得られる。
注意:
ここで紹介したフリーソフトウェアは私自身は動作をチェックしていないため、使用する場合には各自の自己責任にてお願いします。
参考文献
1.窓の杜 - 【NEWS】プロセスごとにCPU使用率の上限を設定できる「BES - Battle Encoder Shirase」
2.BES, Battle Encoder Shirase 1.2.2a: Controls Per-Process CPU Usage