- - PR -
.NET Windowsフォームのパフォーマンスについて
1|2|3|4
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-10-15 23:27
お世話になります。VB.NETを初めて2ヶ月の初心者です。
Windowsフォームのアプリケーションを作成しておりますが フォームを開く際のパフォーマンスが悪くて困っております。 MDIフォームで作成しており、1画面につき100〜200個 ほどのコントロールが存在しています。 フォームを開く際にコントロール数に比例して起動時間がかかります。 30秒〜40秒ほどかかり実用に耐えられません。 フォームの開き方は以下のようにしております。 Dim sForm As frmABC = New frmABC ←ここが遅い! sForm .Show() ※ダイアログではない。 悲しくなるくらい遅いのですが、.NETとはそういうもの なのでしょうか? 実際に皆さんの意見をお聞かせ願えたらと思います。 環境 WindowsXPProSP2 VisualStudio2003 InputMan.NET2.0 ※最新パッチ適用済み Spread.NET ※最新パッチ適用済み | ||||
|
投稿日時: 2004-10-16 01:02
jemini_777さん、はじめまして。
コントロールの場合、インスタンス生成が多くなるので 遅くなるのではないでしょうか。 ラベルあたりはPaintイベントを処理するときにフォームに直書きする なんてことをやって処理速度を稼いでいました。 ご参考までに。 | ||||
|
投稿日時: 2004-10-16 04:12
コントロールの種類にもよりますが、そんなにコントロールを貼ったら、.NET じゃなくてもかなり重たくなります。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||
|
投稿日時: 2004-10-16 10:06
そんなに置けるものなのですか?見難そう・・・ _________________ | ||||
|
投稿日時: 2004-10-16 13:40
さすがに200はやりすぎですよね。
画面の構成を変える(画面遷移など)とか。 あるいは自分でコントロールを作ったらどうでしょうか。 200個とかってのはおそらく「ComboBox2個とTextBox5個がまとまったものが12個並んでいる」とかそんな感じですよね。 「ComboBox2個とTextBox5個がまとまったもの」の機能を持ったコントロールを自分で作ってみては? もちろん、内部でComboBoxやTextBoxを使ってしまっては元も子もありませんけど。 | ||||
|
投稿日時: 2004-10-16 23:33
返信ありがとうございます。
実はこのプロジェクトはVB6のシステムの作り変えで 画面構成等はまったく同じで.netに移行したもの なのですが、VB6でコントロール数が200とかでも サクサク起動していたのですが、.NETでここまで重く なるとは思いませんでした。 ngenも試したのですがあまり効果がありませんでした。 VB6と同じ感覚でつくるのは間違いなのでしょうか? | ||||
|
投稿日時: 2004-10-17 00:28
>コントロール数が200
インスタンスの作成で時間がかかることは仕方がありませんが、 30秒〜40秒というのは異常ですよね。 コントロールのインスタンス作成以外の初期化で時間がかかっている ということはないですか? | ||||
|
投稿日時: 2004-10-17 00:29
一般論で言えば時と場合によります。 質問の件について言えば、現実に目的とするパフォーマンスが得られていないのですから、見直すべきでしょう。 てか、パフォーマンスの劣化が無くても、1枚のフォームにコントロールを100個も200個も散りばめるような設計は見直すべきだと思いますが。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ |
1|2|3|4
次のページへ»