掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CPU使用率の軽減方などについて (ID:126815)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Webを徘徊中にCPU使用率の記事を見つけ、前回自作したゲームプログラムのことですが、 短時間でパソコンの冷却ファンが回りだす事を思い出しチェックしましたところ、 かなり連続して無茶苦茶な数字だったのでタイミング調整の以下の部分を Private Sub Delay(ByVal ms As Single) ' 指定したミリ秒間だけプログラムを遅らせる. Dim StartTimer As Single StartTimer = timeGetTime Do DoEvents Loop While (ms + StartTimer) > timeGetTime End Sub 次のように変更し Private Sub Delay(ByVal ms As Single) ' 指定したミリ秒間だけプログラムを遅らせる. Dim StartTimer As Single StartTimer = timeGetTime Do DoEvents sleep 1 Loop While (ms + StartTimer) > timeGetTime End Sub ループ中の調整部分は Delay ×× としていたのを DoEvents sleep ×× に直しましたところ、動作速度を損なわずにCPU使用率をかなり低減できました。 ご掲示の通り、今回のプログラムでは実行速度を考えますとループ処理中でも最低限の ウェイト(sleep)しか挿入出来ません。 030さん、特攻隊長まるるう さんレス有難う御座います。 返信文の作成中に回答頂いちゃいました。 >CPU負荷を下げたい理由は? Webの記事を見て素人考えで、やはりこのままじゃまずいかな?と思っただけです。 >普通負荷が上がっても処理が速い方が好まれますが。 そうですよね! >処理ステップ数が同じで、無駄な処理が無い(全ての処理が必要不可欠) >なら一定時間中の処理量を減らす為には、全体の処理時間を延ばすしか >ないですよね? 再生用プログラムの方は全くご掲示通りに該当します。 >市販のアプリと比較して…そんなもんでは?と思う部分もあります。が、 >その状態が長く続くとか、処理ステップ数に合わない位の負荷だとか、 >全体を見て、基準がある評価じゃないと…何とも言えません。一瞬でも >60%〜70%になっちゃダメとかいう話なの??? 仕様とか難しい注文の無い素人のプログラムです。 60%〜70%になるのは、広範囲のカラー変更操作のコマンド(プロシージャ)を実行する場合で 短時間(大まかに1秒位)です。 頂きました回答から、自力でこれ以上は望めそうも有りませんし、 目安が全く解らなかったので勉強になりました。 030さん、特攻隊長まるるう さん有難うございました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.