- - PR -
CPU使用率
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-06-25 20:21
すいません
ちょっと分からないのでご質問させていただきました。。 VB.NETで帳票出力アプリを作成しているのですが、 ループで、DBより取得したデータを様々な帳票出力用文言を生成し、書き出しデータを 配列に格納しています。 おそらく上記部分で発生しているのだと思うのですが、 自端末では一切起こらなかったのですが、 使用しているユーザーさんは、20回に1回は、 フリーズしたり、起こるはずの無い、例外エラーが発生したりするとのことなんです リモートで、使用状況を見てみると、帳票出力アプリを使用している間(CPU使用率100%)の状態で、 別のアプリをガンガン動かしていました。 CPU使用率を私のアプリが占有しているから、 フリーズしたり、誤動作したりするのでしょうか? 対策としては何があるのでしょうか? System.Threading.Thread.Sleepを使用してCPU使用率を占有させないようにすれば 回避されるのでしょうか・・・ アドバイスよろしくお願いいたします | ||||||||||||
|
投稿日時: 2006-06-25 21:26
毎々お世話になっております。
やってみなければわかりませんが、多分そうでしょう。 問題はどこに入れるか、ですよね。 Document の Load 関係が原因のように思われますが、その帳票は、どのような帳票でしょうか? System.Drawing.Printing.PrintDocument? CrystalReports? ActiveReports? サブレポートが山のようにあるような帳票でしょうか? それと、問題の端末のスペックもわからないです。 (洒落にならないくらい低スペックでない限りは大丈夫だと思いますけど) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-06-25 21:36
明日になれば分かることですが、、、
帳票は結構色々な制限があり、現在は、Excelに書き出す形式にしています 手順としては、 1.必要なデータをSQLより抽出 2.抽出データを元に出力データを生成 3.生成したデータをExcelに書き出し のように行っています 落ちれいると思われるのは、2の部分で 例外が発生しているメソッドもログを書き出しているので分かっているので、 その部分にsleepを入れてみようと思います おそらくExcelに書き出し中にExcelの使用率も相当高くなっていると思います。 そのときの不具合は今のところ出てはないのですが、、、 .NETからExcelを操作してデータを書き出している時に、そのExcelのCPU使用率も 抑えるような技とかあるのでしょうか? クライアント端末はペン4 3GHz メモリは、512ほどつんでいるので、問題は無いと思います | ||||||||||||
|
投稿日時: 2006-06-25 21:42
推測ですが、もともとあるバグが、CPU使用率が高いことでたまたま出やすくなるだけでしょう。どんなアプリケーションも、CPU使用率がいくつであろうとも正しく動くべきです。 CPU使用率とバグの出やすさに相関があるのならば、CPU使用率を下げることに意義がまったくないとは言えませんが、しかし、それは根本的な解決ではありません。本来はバグをなくすべきです。 -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} | ||||||||||||
|
投稿日時: 2006-06-25 21:46
普通に考えると、3 だと思ったのですが、そうじゃないのですね。 3 であれば、「HRESULT からの例外」 が発生する可能性はあるのですが。
あれ? 2 じゃなかったのでしょうか? "Excel に書き出し中" にあたるのは 3 のような気がしますが...
やっぱり、「HRESULT からの例外」 のような気がするんですけどね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2006-06-25 21:47
バグですか・・・
1回目は端末がフリーズしても2回目は必ず成功し、、、 A端末で失敗しても、全く同じことをB端末で行うと成功するんですが やはりバグがあるんでしょうか? | ||||||||||||
|
投稿日時: 2006-06-25 21:50
Excelの書き出し処理まで進むと必ず成功はしています。
例外の種類は、明日会社で確認してみます 今はちょっと分からないので・・・ .NETのアプリの使用率を下げても今度はExcelの使用率があがるだけかと思い・・ ちょっとそこはまだ確認していないのですが。。 | ||||||||||||
|
投稿日時: 2006-06-25 21:56
いま問題が起こっているのは2だけど、3でも多分CPU使用率が高くなってると思う ってことでしょう。 で、例外が分からんとなんともいえませんね。 て思ったら、現時点ではまだ分かってないってことですね… |