tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルCPU使用率について
記事No2427
投稿日: 2005/10/17(Mon) 23:13
投稿者たー
[OSのVer]:WindowsXP    [VBのVer]:VB.NET2003

お世話になります。

ループ処理を書いているのですが、
処理を実行時、CPUの使用率が100%になってしまい、処理が遅くなってしまいます。
処理中にCPUの使用率を下げる方法はありますでしょうか?

ご教授下さい。
よろしくお願い致します。
  

[ツリー表示へ]
タイトルRe: CPU使用率について
記事No2432
投稿日: 2005/10/18(Tue) 11:04
投稿者魔界の仮面弁士
> ループ処理を書いているのですが、
> 処理を実行時、CPUの使用率が100%になってしまい、処理が遅くなってしまいます。

何の処理が遅くなるのでしょうか? CPUを100%使っても、まだ処理速度が足りないという意味であれば、
CPU自体をパワーアップするか、プログラムを見直すぐらいしか対処方法は無いかと思います。
それとも、処理中に、その他のプログラムやOSの処理が遅くなってしまうという事でしょうか?
あるいは、ループプログラム自体(の何か)の処理が遅くなってしまうという話でしょうか?

> 処理中にCPUの使用率を下げる方法はありますでしょうか?

具体的な内容が書かれていないので、一般論しか答えられませんが、とりあえずは……。

CPUを占有することで、他のプログラムの処理に悪影響が出ている場合。
→Application.DoEvents等を使い、ループ中で適宜、他の処理が行われるようにする。
 (この場合、メイン処理の速度は低下する)
hhttp://www.microsoft.com/japan/msdn/thisweek/step7/Improve_performance_Winform2/Improve_performance_Winform2-1.aspx

CPUを占有することで、自分自身のプログラムで、他の操作を行えなくなっている場合。
→重いループ処理を、非同期で処理するようにする。
hhttp://www.microsoft.com/japan/msdn/thisweek/step7/Improve_performance_Winform2/Improve_performance_Winform2-2.aspx
hhttp://www.microsoft.com/japan/msdn/thisweek/step7/Improve_performance_Winform2/Improve_performance_Winform2-3.aspx

といった対処方法が考えられます。


それでも解決できないようであれば、そもそも、そのループが重いことが主原因なので、
ループ自体に無駄な処理が含まれいないか、プログラム設計を見直す必要があるかもしれません。

[ツリー表示へ]
タイトルRe^2: CPU使用率について
記事No2433
投稿日: 2005/10/18(Tue) 11:11
投稿者たー
ご回答有難う御座いました。

参考にしてみます。

[ツリー表示へ]