トップ回答者
デザイナ変更してからの待機時間

質問
-
VS2010(C++/CLI)/Win7の環境でWinフォームアプロケーションの作成をしています。
タブコントロールの中でタブページが10ページほどあり、それぞれの中にチェックボックス/ラベル/テキストボックス等のコントロールが200個
1フォーム上にコントロールが2000個強あります。
その中でロケーションプロパティーやヘッダーファイルのソースの編集をした際
コードエディタ⇔デザイナを切り替える際、約20分ほどVS2010停止します。コードのセーブとかでも起きます
(他のアプリケーションは動作するので、パソコン自体はフリーズしていません)
これはデザイナ/コードエディタでの変更をデザイン/コードに反映するためにVS2010が自動生成しているためと思いますが
この切り替え時の時間が長いので作業が止まってしまいます。
これは単純にコートロールを一つのフォームに追加しすぎているためにしょうがないものなのか
それとも設定で改善するものなのか、自分なりに調べてみましたがわからなかったので投稿させていただきました。一つのフォームでたくさんのコントロールを使うということはあると思いますが、どう対処すればいいのかなと思いました。
コードで記述すれば軽減すると思いますが、デザインの確認ができなくなってしまうの巻と思います。
お分かりの方がいらしたら教えてください、よろしくお願いします。開発環境は
Win7Pro
CPU:corei3の2.1GHz
メモリ:4GB
のノートパソコンです
回答
-
PC のスペックを考えると、デザイン時コードの生成時間でしょうね。
タブページ内をユーザコントロールにするなどで、開発環境としては改善するかと思います。
しかしながら、コントロールが200以上ある(2000ではなく200ですよ)ようなフォームは、広く配布するようなアプリケーションだとユーザ環境でも動作が不安定になる原因になるため、最終的に表示されるウィンドウの単位でみて200程度に抑えるほうが好ましいです。(これは、ユーザコントロール等を利用して開発環境を軽くしても、実行時にはユーザコントロールの中身まで数える必要があるという意味です)
WPF に移行するというのも解決策の1つです。(コントロールの数によって不安定になる要素は減りますが、開発環境に要求されるスペックがやや上がる印象はあります)
- 編集済み K. Takaoka 2012年2月1日 0:16
- 回答の候補に設定 山本春海 2012年2月10日 7:01
- 回答としてマーク 山本春海 2012年2月13日 8:41
-
参考までにお聞きしたのですが
VS2010を動作させるパソコンのスペックとしてはもう少しメモリ等を増やした方がいいのでしょうか
VS2010が起動するにも時間かかるなぁと感じているんで開発環境は
Win7Pro
CPU:corei3の2.1GHz
メモリ:4GB
のノートパソコンですWin7 は 32bit版ですか?もしそうならメモリは 4GB限界ですね。もっとも3GBくらいしか認識しないでしょうが・・・
ちなみに私のいまの開発環境は
Win7 64bit
CPU:Core i7-2600
メモリ:12GB
グラボ:GeForce GT 530ですが、VS2010を三つ、Blend、Photoshop、IE、VMWare を同時起動してもサクサク動きます。
開発環境があまり快適すぎるのもどうかと思われるので、テストは仮想環境や低スペックマシンで行ってます。
ひらぽん http://d.hatena.ne.jp/hilapon/ -
コントロールが200以上ある(2000ではなく200ですよ)ようなフォーム
「1フォーム上にコントロールが2000個強あります」とあるので、1 フォーム上の総数が 2000 個だと思っていますし、桁違いに多いという印象です。
従って、開発環境の改善よりも、画面設計の見直しの優先度が高いと考えています。単純にユーザーコントロールとして分離すれば改善するかと言われれば、マシになる期待はあるものの、絶対ではありませんね。
逃げの一手としてこれに頼るよりは、できれば攻めとして画面を大きく見直して、1 フォーム内の設定要素・データ表示要素を大きく減らす、分散させたいところです。# 200 は 1 ページあたりのコントロール数ですね。:-P
質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。- 編集済み AzuleanMVP, Moderator 2012年2月1日 13:22
- 回答の候補に設定 山本春海 2012年2月10日 7:01
- 回答としてマーク 山本春海 2012年2月13日 8:41
すべての返信
-
-
PC のスペックを考えると、デザイン時コードの生成時間でしょうね。
タブページ内をユーザコントロールにするなどで、開発環境としては改善するかと思います。
しかしながら、コントロールが200以上ある(2000ではなく200ですよ)ようなフォームは、広く配布するようなアプリケーションだとユーザ環境でも動作が不安定になる原因になるため、最終的に表示されるウィンドウの単位でみて200程度に抑えるほうが好ましいです。(これは、ユーザコントロール等を利用して開発環境を軽くしても、実行時にはユーザコントロールの中身まで数える必要があるという意味です)
WPF に移行するというのも解決策の1つです。(コントロールの数によって不安定になる要素は減りますが、開発環境に要求されるスペックがやや上がる印象はあります)
- 編集済み K. Takaoka 2012年2月1日 0:16
- 回答の候補に設定 山本春海 2012年2月10日 7:01
- 回答としてマーク 山本春海 2012年2月13日 8:41
-
-
参考までにお聞きしたのですが
VS2010を動作させるパソコンのスペックとしてはもう少しメモリ等を増やした方がいいのでしょうか
VS2010が起動するにも時間かかるなぁと感じているんで開発環境は
Win7Pro
CPU:corei3の2.1GHz
メモリ:4GB
のノートパソコンですWin7 は 32bit版ですか?もしそうならメモリは 4GB限界ですね。もっとも3GBくらいしか認識しないでしょうが・・・
ちなみに私のいまの開発環境は
Win7 64bit
CPU:Core i7-2600
メモリ:12GB
グラボ:GeForce GT 530ですが、VS2010を三つ、Blend、Photoshop、IE、VMWare を同時起動してもサクサク動きます。
開発環境があまり快適すぎるのもどうかと思われるので、テストは仮想環境や低スペックマシンで行ってます。
ひらぽん http://d.hatena.ne.jp/hilapon/ -
コントロールが200以上ある(2000ではなく200ですよ)ようなフォーム
「1フォーム上にコントロールが2000個強あります」とあるので、1 フォーム上の総数が 2000 個だと思っていますし、桁違いに多いという印象です。
従って、開発環境の改善よりも、画面設計の見直しの優先度が高いと考えています。単純にユーザーコントロールとして分離すれば改善するかと言われれば、マシになる期待はあるものの、絶対ではありませんね。
逃げの一手としてこれに頼るよりは、できれば攻めとして画面を大きく見直して、1 フォーム内の設定要素・データ表示要素を大きく減らす、分散させたいところです。# 200 は 1 ページあたりのコントロール数ですね。:-P
質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。- 編集済み AzuleanMVP, Moderator 2012年2月1日 13:22
- 回答の候補に設定 山本春海 2012年2月10日 7:01
- 回答としてマーク 山本春海 2012年2月13日 8:41