CPU使用率を抑えるようにするには?

解決


すぺくちゃー  2006-07-25 09:19:00  No: 132446

始めまして、VB.NET歴4ヶ月のすぺくちゃーと言います。

VB.net(2003)にて、コーディングしているのですが、どうしても判らない
問題があるので質問させてください。

フォームにて一つのCSVファイル(最大200MB位)からStreamReaderを使っての全データを読み込み、そのデータを元にグラフ表示を行う処理と、
クラスにてSystem.Timers.Timerのタイマーを使って1秒間隔で、デバイスから取得したデータをCSVファイルに書き込んでいく処理を行わせています。

CSVの容量が数百KB位までは問題無いのですが、数十MBになってくるとCSVファイルを読込んでいる時にCPUが100%近くに張り付いてしまい、System.Timers.Timerにて収集しているデータの抜けが発生します。

CSVファイルの読み込み時にCPUの負荷率を抑える方法や、高負荷時でも安定したデータ収集を行う方法などがありましたら、教えて下さい。
よろしくおねがいします。


  2006-07-25 16:31:54  No: 132447

マルチスレッドにするとか、デバイスの方から割り込みをかけるとか色々方法は有ると
思いますが、とりあえず、ファイルがCSVなら、読み込みをReadLineにして、適当な行目毎にSystem.Windows.Forms.Application.DoEvents()を入れるとか。
どの方法が良いかは、もう少しプログラムの仕様がはっきりしないと...


すぺくちゃー  2006-07-28 18:20:47  No: 132448

我さん  返信有難うございます!!

マルチスレッドにしたら、うまく行きました!!
アドバイス有難うございました!!!!


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加