掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CPU使用率を制限するには (ID:9569)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
偶然というか、この10日間、CPU使用率のテストを繰り返しています。 私の環境はWindows2000pro SP4, CPU 1GHz, メモリ256MBです。 CPU使用率 100%を1時間も続けるとOSがシャットダウンし、再起動もできなくなりますが、タイミングによっては10数分でもそうなることがあり、初めて怖さを知りました。 Sleep(1);をループ内にかませると使用率0から1%になり、使用率100%は解決しますが、気が遠くなるほど処理が遅くなり使い物になりません。 短い処理であれば、そうでもないのですが、そういう場合はSleep(1);を入れる必要もまずありません。 >使用率を下限70、上限90%の間に制限できるようにできないのか? 使用する機種が限定されていて、複数使用する場合CPUの性能が似通っていれば、Sleep(1);の実行回数を調整することで可能なことが解りました。 下記例の場合、私の環境では常時50%を維持できました。 この状態で他のアプリを並行使用すると何が起こるかはまだ調べていませんが。 -- 例 -- var i, j: Cardinal; begin j := 0; for i := 0 to $FFFFFFFF do begin Inc(j); Application.ProcessMessages; if i mod $1FFFF = 0 then Sleep(1); // ここ!! end; end; OSをクラッシュさせるようでは、他人のPCで実験させてもらうわけにはいかなかったのですが、このコードで幾つかこれから試させてもらおうと思っています。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.