Visual Studio 2010在调试时填充列表框时非常慢
本文关键字:列表 非常 填充 Visual 2010 调试 Studio | 更新日期: 2023-09-27 18:35:05
在VS2010中调试时,程序的运行速度自然比其他方式慢得多。
但是,最近,如果我更新 ListBox 的值,我的程序以难以形容的速度运行。(其他控件也可能受到影响,我不确定...但列表框是肯定的)。
在调试器外部在几分之一秒内发生的操作(例如向 ListBox 添加 100 个元素)在 VS 中可能需要长达 3 到 5 分钟的时间。
显然,这不是正常行为。
我不确定这是什么时候开始的,但它并不总是发生。它开始发生在几个月前。也许当我安装服务包时?我不确定。
当我查看进程时,msvsmon.exe正在咀嚼CPU。
任何想法,如果某个地方我可能已经更改了导致这种情况的选项?我正在尝试使用包含 8,000 个元素的 ListBox 调试某些内容,这完全不可能。
视窗 7 x64, 4GB 内存, VS2010-SP1
是的,我可以在输出窗口中看到很多 System.InvalidCastExceptions
这就是导致速度变慢的原因,调试器在处理异常时会做很多工作。 尤其是您现在使用的远程调试器,由于项目的平台目标是 AnyCPU,因此需要将通知消息添加到"输出"窗口并不便宜。
你不能忽视这个问题,它不仅仅是一个调试器工件。 "调试 + 异常",勾选"CLR 异常"的"引发"框。 调试器现在将在引发异常时停止。 您需要修复该代码。
问题可能是VS2010处理断点的方式。 看看这个链接:
- VS2010 调试条目非常慢
两个有趣的注意事项:
- 在调试开始时,搜索符号通常非常慢,尤其是在配置了远程符号选项之一的情况下, 并且没有在各种 DLL 上设置"忽略",这些 DLL 不会 MS 服务器上的符号。
。
- 是的,msvsmon.exe 将在调试 64 位程序时使用。由于Visual Studio是完全32位的,因此需要远程调试器 弥合鸿沟。...努力寻找和加载.pdb 文件是可能的。或者意外地进行了混合模式调试 选项已打开,以便调试器也看到所有非托管 DLL 加载并为它们查找符号。当然,这些只是猜测。
减慢的另一个原因 - 条件断点,因为每次命中断点时都需要评估条件。在长循环中,如果断点具有"false"的条件,则会显著降低调试速度。