簡體   English   中英

調試時填充列表框時,Visual Studio 2010的運行速度非常慢

[英]Visual Studio 2010 extremely slow when populating ListBoxes while debugging

在VS2010中進行調試時,程序運行自然比其他方法慢很多。

但是,最近,如果我要更新ListBox的值,我的程序將以令人難以置信的緩慢速度運行。 (我不確定其他控件也可能會受到影響……但是ListBox是可以肯定的事情)。

在調試器之外進行的操作很少,例如在ListBox中添加100個元素,這些操作在VS內部可能要花費3到5分鍾。

顯然,這不是正常行為。

我不確定何時開始,但並非一直如此。 它開始發生在幾個月前。 也許當我安裝Service Pack時? 我不確定。

當我查看進程時,msvsmon.exe正在咀嚼CPU。

有什么想法可以改變我的想法嗎? 我正在嘗試使用包含8,000個元素的ListBox進行調試,這完全是不可能的。

Windows 7 x64、4GB RAM,VS2010-SP1

是的,我可以在輸出窗口中看到很多System.InvalidCastExceptions

這就是導致速度變慢的原因,調試器在處理異常時會做大量工作。 特別是您現在正在使用的遠程調試器,這是必需的,因為您項目的平台目標是AnyCPU,所以將通知消息添加到“輸出”窗口並不便宜。

您不能忽略此問題,它不僅僅是調試器工件。 在“調試+異常”中,選中“ CLR異常”的“拋出”框。 現在,當引發異常時,調試器將停止。 您需要修復該代碼。

問題可能是VS2010處理斷點的方式。 查看此鏈接:

兩個有趣的注意事項:

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

...

  • 是的,調試64位程序時將使用msvsmon.exe。 由於Visual Studio完全是32位,因此需要遠程調試器來彌合鴻溝。 ...可能會努力尋找並加載.pdb文件。 或無意間打開了混合模式調試選項,因此調試器還可以查看所有非托管DLL負載並為其找到符號。 這些當然只是猜測。

變慢的另一個原因-條件斷點,因為每次擊中斷點時都需要評估條件。 在長循環內具有斷點的條件為“ false”的斷點將大大減慢調試速度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM