Dot-Net

Visual Studio 2012 winform 設計器非常慢

  • December 18, 2015

我們最近將我們的一個 Winforms 項目從 Visual Studio 2008 遷移到 Visual Studio 2012。過渡非常順利,一切都建構得很好,但是我們現在正與執行速度非常慢的 winforms 設計器作鬥爭。

舉個例子,如果我們打開一個小表單(該表單包含兩個文本框、一個數字上下和兩個按鈕 - 所有標準內置控制項,沒有第 3 方),但是在 2012 年大約需要 40-45 秒在 2008 年,它將在 1 或 2 秒內打開。對於我們更大的形式,這種差異更加明顯。在 2008 年,打開表單大約需要 7 秒,但在 2012 年,它需要超過 6 分鐘。最糟糕的是這是一個阻塞動作,VS2012 在打開表單時幾乎完全沒有響應。只需點擊表單的 .h 也會發生這種情況,因此我們不能僅僅通過堅持程式碼本身就可以輕鬆避免它。

有沒有其他人經歷過這個?有誰知道它為什麼會發生,以及是否有什麼可以做的?

附加資訊:我們的應用程序是 C++/CLI winforms 應用程序。在我們所有執行 Windows 7 x64 的開發機器上都可以看到這種行為。我的機器是具有 12Gb RAM 的 Core i7 860 CPU(當我對上述內容進行基準測試時,現在有超過 60% 的空閒空間)——我想已經足夠了。無論如何,我的系統絕不是執行緩慢,它只是 VS2012 設計器。

編輯:只是為了進一步澄清,我們沒有安裝任何外掛或類似的東西。這是一個原始的 VS2012 安裝。

EDIT2:它似乎也不是網路問題。

我不知道延遲的原因,但我可以告訴你一種確定原因的方法。使用 Visual Studio 的另一個實例對其進行調試。附加到 devenv.exe 程序:調試 Visual Studio

如果你偶爾中斷所有執行緒,在延遲期間,從統計學上講,你很可能會找到一個堆棧,其中包含導致延遲的呼叫。這是一個“窮人的分析器”,但效果很好。我以前曾使用此技術來發現和報告 Visual Studio 2010 設計器程式碼生成器(Microsoft 未修復)中的回歸性能變化。

我在 Visual Studio 2010 上,我遇到了同樣的事情。當我在設計器中並點擊相應的 .h 文件或向 GUI 添加另一個元素時,VS 開始“計算”設計的新程式碼並完全阻塞 CPU 以完全掛起。

我的 Windows 窗體包含很多元素。隨著時間的推移,隨著我向使用者界面添加越來越多的內容,從設計器到程式碼的切換變得越來越慢。目前,每次我更改設計中的任何內容時,從設計器切換到程式碼大約需要 4 分鐘(!!!)。

正如我所看到的,它不可能是網路問題。更多的是VS本身的問題,無法快速有效地計算程式碼。

引用自:https://stackoverflow.com/questions/12952670