2010-07-14 131 views
7

當我從調試開始(F5)開始調試我的Web應用程序或附加到ASP.NET工作進程時,它會非常緩慢地從應用程序加載程序集,我可以單獨閱讀他們滾動瀏覽VS2010的狀態欄。VS2010調試條目很慢

當我開始調試時,我發現MSVSMON.exe使用50%的CPU並鎖定50%,明顯填滿了整個內核。也看到這被描述爲Visual Studio遠程調試監視器,我很困惑,如果這應該甚至被使用,因爲我正在調試我的機器本地的所有東西。

我正在運行由RDP虛擬連接的環境,如果這可能與此有關。

主機:Server 2008企業版R2 Dualcore的至強2.53GHz的

虛擬實例:Win7企業6GB內存完整的處理器分配

這看起來正常嗎?如果我在本地進行調試,MSVSMON是否應該運行?

+0

我在本地或遠程調試Web或正常進程時都沒有性能問題。 VS在運行x64的遠程機器上爲我運行x32。 – 2010-07-14 19:07:13

回答

19

Menu.Debug.DeleteAllBreakpoints

爲我工作。

+0

我不知道爲什麼,但這也適用於我。從調試到完成的網頁從20秒變爲3秒。但我想知道爲什麼!我在同一個項目中只有少數斷點(從來沒有碰到過)。 – Sire 2011-01-26 12:29:35

+0

在VS2010中肯定有一個關於這個問題的錯誤,以及它失去了什麼的斷點。 – 2011-05-13 17:34:59

+2

如果通過名稱添加斷點(break to function),調試器需要掃描每個加載的dll的所有符號,以檢查是否有任何符合給定名稱的符號。這需要所有的時間,而不是一個錯誤。 – 2011-05-24 14:06:52

4

是的,msvsmon.exe將在您調試64位程序時使用。由於Visual Studio完全是32位的,因此需要遠程調試器來彌合鴻溝。

沒有任何理由認爲減速是由遠程調試器引起的。大量工作可能會發現並加載.pdb文件。或者不小心打開了混合模式調試選項,因此調試器也會看到所有非託管DLL負載併爲它們查找符號。這些只是猜測當然。

3

在調試開始時搜索符號通常非常緩慢,特別是如果您配置了遠程符號選項之一,並且未在MS服務器上沒有符號的各種DLL上設置「忽略」。

這些不僅可以是代碼的第三方組件,也可以掛鉤由例如圖形驅動程序注入的DLL,因此值得關注試圖加載的內容。

在開始調試時運行Fiddler(http://www.fiddler2.com/fiddler2/)將顯示符號是否正在遠程獲取。

即使未明確設置VS(在tools-> options-debug)中進行遠程符號讀取,它仍然會遵循_NT_SYMBOL_PATH環境變量 - 檢查是否已設置以及它指向什麼。

3

我有同樣的問題,雖然這個解決方案並沒有爲我做。最後,我不得不進入工具 - >選項 - >調試 - >符號,並取消選中符號文件(.pdb)位置,並單擊空符號緩存按鈕。之後,調試更好。

+1

非常有效的一點,這不是確切的場景,我描述了我看到它以每秒1次左右的速度加載MY程序集,但如果您看到它加載不屬於自己的程序集,將大大減少調試條目。使用符號源來調試.NET代碼的能力非常棒,但只有在特定需求時纔會打開迷人的效果,然後立即關閉。 – 2013-01-28 16:25:46

0

對我來說,問題是我安裝了PUP(可能有害的程序),這會減慢其他進程。幾次MSVSMON顯示此行爲後,我意識到Cltmng.exe進程(來自Search Protect by conduit)正在使用異常數量的CPU,並將其解決。