タイトル : Re: CPU使用率について 投稿日 : 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 といった対処方法が考えられます。 それでも解決できないようであれば、そもそも、そのループが重いことが主原因なので、 ループ自体に無駄な処理が含まれいないか、プログラム設計を見直す必要があるかもしれません。 |