10

最近、Winformsプロジェクトの1つをVisualStudio2008からVisualStudio2012に移行しました。移行は非常にスムーズに進み、すべてが正常に構築されていますが、実行速度が非常に遅いWinformsデザイナーに苦労しています。

例を挙げると、小さなフォームを開くと(フォームには、2つのテキストボックス、数値のアップダウン、2つのボタンが含まれます。すべて標準の組み込みコントロールであり、サードパーティはありません)、2012年には約40〜45秒かかります。 2008年には、1〜2秒で開きます。私たちのより大きなフォームの場合、この違いははるかに顕著です。2008年には、フォームを開くのに約7秒かかりますが、2012年には6分以上かかります。最悪の部分は、これがブロックアクションであるということです。フォームを開いている間、VS2012はほとんど完全に応答しません。これは、フォームの.hをクリックするだけでも発生するため、コード自体に固執するだけで簡単に回避できるわけではありません。

他の誰かがこれを経験しましたか?なぜそれが起こっているのか、そしてそれについて何かできることがあるかどうか誰かが知っていますか?

追加情報:私たちのアプリケーションはC ++ /CLIwinformsアプリです。この動作は、Windows7x64を実行するすべての開発マシンで見られます。私のマシンは、12GbのRAMを搭載したCore i7 860 CPUです(上記のベンチマークを行っている間、現在60%以上無料です)-十分すぎると思います。いずれにせよ、私のシステムは決して遅くなることはなく、VS2012デザイナーにすぎません。

編集:さらに明確にするために、アドオンなどはインストールしていません。これは、VS2012の未使用のインストールです。

EDIT2:それもネットワークのことではないようです。

4

6 に答える 6

4

遅延の原因はわかりませんが、原因を特定する方法を教えていただけます。VisualStudioの別のインスタンスを使用してデバッグします。devenv.exeプロセスにアタッチします:VisualStudioのデバッグ

統計的に言えば、遅延中にすべてのスレッドをときどき中断すると、遅延の原因となっている呼び出しを含むスタックが見つかる可能性があります。これは「貧乏人のプロファイラー」ですが、非常にうまく機能します。私は以前、この手法を使用して、Visual Studio 2010デザイナーコードジェネレーター(Microsoftによって修正されていない)のパフォーマンスの低下を発見して報告しました。

于 2012-10-18T17:04:29.207 に答える
0

私はVisualStudio2010を使用していますが、同じことを経験しています。Designerを使用して、対応する.hファイルをクリックするか、GUIに別の要素を追加すると、VSはデザインの新しいコードの「計算」を開始し、CPUを完全に詰まらせて完全にハングします。

私のWindowsフォームにはたくさんの要素が含まれています。ユーザーインターフェイスにどんどん追加していくにつれて、Designerからコードへの切り替えがどんどん遅くなっていきました。現在、デザインの内容を変更するたびに、デザイナーからコードに切り替えるのに約4分(!!!)かかります。

私が見ることができるように、それはネットワークの問題ではありえません。コードを高速かつ効率的に計算できないのは、VS自体の問題です。

于 2013-01-11T19:41:42.110 に答える
0

この問題を解決するためのガイダンスを提供することはできません。しかし、私もそれを持っているとあなたに言うことができます。これは、Visual Studio 2010と2012の両方で発生します。私はWPFのないWindowsフォームを使用しているので、問題はそれとは無関係だと思います。

于 2013-02-06T17:40:11.993 に答える
0

さて、この質問は1年以上前から開かれており、WinFormデザイナーがなぜそれほど遅いのかについて具体的な答えを思い付くことができた人は誰もいません。

最近VS2012に戻り、Update 3に更新しました。さまざまなリリースノートを注いでいるにもかかわらず、この領域でのパフォーマンスの向上については言及されていませんが、デザイナーがはるかに高速になったことを報告できてうれしいです。

水を少し濁らせるために、私の開発マシンは最初にこれを投稿してからアップグレードされました。現在、AMD FX-8350 CPU、16GBのRAM、SSDを搭載しています。この新しいマシンを最初に入手したとき、最初に試したのはVS2012でしたが、以前と同じように遅いことがわかりました。これで、約15秒で6分以上かかっていたのと同じフォームをロードできるようになりました。これはまだVS2008のほぼ2倍の長さですが、360年代以降からの大きな飛躍であるため、私はそれで生きることができます。デザイナーにバグが修正されているのか、それとも単にパフォーマンスが向上しているのか、おそらく追加のプロセッサーコアを利用しているのかどうかわからないため、これについてのみ言及します。つまり、マイレージは異なる場合がありますが、まだ試していない場合は、Update3をインストールしてみてください。

Update 3はここからダウンロードできます:http://www.microsoft.com/en-us/download/details.aspx?id = 39305

于 2013-10-29T15:53:01.083 に答える
0

私は同じ問題を抱えていたと思いますが( VS2013でも)、おそらく私が観察したことは他の人にも役立つかもしれません...私は32ビットWinXPから64ビットWin7へのアップグレードを非難しています。これが理由です。

以前は、WinXPマシンでVS2008Expressを使用していました。マザーボードが故障したため、光沢のある新しいWindows7マシンを入手しました。それに比べて、この新しいマシンは、SSD、2倍のメモリ、はるかに高速なプロセッサを備えた非常に高速です。

最初にVS2008をインストールしましたが、フォームエディターを使用する前に、他の理由でVS2013が必要であることに気付きました。したがって、VisualStudioの両方のバージョンがまだインストールされています。

私の超高速のWindows7マシンでは、どちらのバージョンのVisualStudioにも非常に遅いフォームエディターがあると思います。両方のバージョンのVSにロードしたかなり複雑なフォームがあります。フォームは、VisualStudio2013に移植されていることを除いて同じです。

このコンピューターは2週間以内に使用されており、マルウェアがないことを確信しています。

また、どちらのバージョンのVisual Studioでも、フォームデザイナーで任意のコントロールをクリックすると、遅延中にマウスポインターがポインターと「サイズ」カーソルの両方になり、両方が半透明になります...これは、マウスカーソルを2つの間ですばやく交互に切り替えるため、両方が半透明に見えることを示しています。

私の推測では、Windows 7には、特にフォームエディターで、グラフィックをレンダリングする方法が異なります。(ちなみに、フォームエディタで実際のコントロールを見ているのですか、それとも単にそれらのグラフィック表現を見ているのですか?明らかに、フォームエディタでは「機能」しません。)

テーマを「Windowsクラシック」(半透明、四角い角、灰色の背景なし)に切り替えてみましたが、目立った違いはありませんでした。

于 2014-04-25T18:39:05.797 に答える
0

C++プロジェクトのコンパイラ設定を/clr:pureから/clrに変更してみてください。

于 2015-12-18T10:46:41.677 に答える