4

最近、Entity Framework を使用するプロジェクトを VS2010 および EF4 から VS2012 および EF5 にアップグレードしました。このモデルは、適切なスキーマを持つ既存の DB から派生したもので、約 70 のエンティティ タイプ、20 の関数インポート、および 10 の複雑なタイプ (ストアド プロシージャの結果を返すために使用) があります。

VS2010 EF4 では、単一の図にすべての関連線を含む 60 のエンティティを含めるのは扱いにくくなりました。しかし、VS2010 でのパフォーマンスは良好で、IDE による大幅な遅延は覚えていませんでした。

VS2012 EF5 では、ビルドが EDMX でエラーを示し続けたため (VS2010/EF4 では報告されませんでした)、DB からモデルを再インポートしました。約 70 のテーブルは、データベース内の 8 つの異なるスキーマに由来するため、新しいモデルをスキーマごとに個別の図に分割し、エンティティをスキーマごとに色付けしました。次に、各図の各エンティティで「関連を含める」を使用して、スキーマに関連するすべてのテーブルが図に含まれるようにしました (関連付けが視覚化されるように)。理論的には、これは VS2010/EF4 IDE よりも大幅に改善されたもので、ダイアグラム内のエンティティをより簡単に見つけて操作できるようになりました。

VS2012 / EF5では非常に遅いことを除いて。高速である必要があるタスクでは、数秒間待機カーソルが発生します。エンティティの塗りつぶしの色を変更するだけで、5 秒ほど待機します。ダイアグラムでたとえば 10 個のエンティティを選択し、塗りつぶしの色を変更すると、20 ~ 30 秒待機します (概算)。ダイアグラム上でエンティティをドラッグして数ピクセル移動するだけでも、エンティティ プロパティを変更した場合と同様の遅延が発生します。基本的に、私は何をするにも親指をいじる結果になり、それがすぐに積み重なり、多くの時間を無駄にします。

リモート デスクトップ経由でアクセスしている仮想マシン上の Windows 8 Professional で、更新プログラム 1 を使用して VS2012 を実行しています。VM は、8 ~ 3 GHz のコア、16 GB のメモリ、およびハードウェア RAID5 を備えた Windows Server 2012 システムで実行されています。VS2012 VM には、4 つの CPU コアと 4GB のメモリが割り当てられています。サーバーはほとんどアイドル状態で、十分な空きメモリがあるため、VM は非常に高速である必要があります。対照的に、VS2010 は、2 つの 3GHz コアと 3GB のメモリを備えたデスクトップ上の Virtual Box で Windows XP Pro の下で実行されていました。さらに、私のデスクトップはサーバーよりもプロセッサとメモリの競合が多いため、理論的には VS2012/EF5 の方がはるかに高速であるはずです。

違いが生じる場合に備えて、ReSharper を両方の環境にインストールしました (2012 年の v6 と 2012 の v7)。

私は少し実験し、かなり多くのグーグル検索を行いましたが、ほとんど見つかりませんでした. VS2010 よりもはるかに遅いことが知られていますか? これを引き起こしている可能性のあるインストール、構成、またはプロジェクト/モデルに何かありますか? 高速化するためのオプションは何ですか? これは非常に遅く、非常に非生産的です。

4

1 に答える 1

0

Visual Studio 2012 Update 4 をインストールしてみてください。

パフォーマンスが向上しない場合は、ReSharper をしばらく無効にしてパフォーマンスを再度テストしてください。

よろしく

于 2013-11-18T16:51:21.467 に答える