调试有时很慢

问题描述 投票:10回答:17

我在正常的中型解决方案中使用VS2008。

有时,调试步进变得非常慢。对于每个“步骤”(F10 / F11),挂锁都会在每个文件选项卡上呈现,每个步骤最多可能需要两秒钟。这使调试非常烦人和缓慢。有没有人见过这个问题?

visual-studio debugging
17个回答
-1
投票

是的,Visual Studio在调试时有时非常慢。您可以采取一些额外的步骤(除了关闭“启用属性评估”设置)以加快进程。基本上,它需要大量的RAM,因此执行一些操作来释放它将有所帮助。

  1. 进入Visual Studio的首选项。查找与动画菜单等相关的所有选项。这些往往是密集的趋势,而不是特定的调试,因为你通常不打开菜单,它似乎有帮助。
  2. 在计算机本身上,如果右键单击我的计算机。转到高级选项卡并在性能下。如果您调整计算机以获得最佳性能,它将加快速度。它摆脱了你的计算机上任何不错的风格,但它会释放你想要的一些内存。
  3. 关闭所有不必要的程序您可以为Visual Studio提供的内存越多,它的行为就越好。

0
投票

Here's a link to some guidance on Mike Stahl's MSDN blog,关于解决调试器减速问题

我碰到了这个,因为我的应用程序的热点中的条件断点杀死了我的调试性能。个人BKM:在您离开之前解决潜在的性能问题,因为您可能在早上不记得它们。


0
投票

单步缓慢的另一个原因是使用Intellitrace(仅在Ultimate中可用)。要关闭它,工具|选项| IntelliTrace进行。取消选中启用IntelliTrace。


0
投票

“显示源代码中的线程”建议没有帮助。

但是我通过启用工具来修复它:选项:调试:常规 - >“要求源文件与原始版本完全匹配”。

Mine最初未经检查,但在更改后,在VS2008中逐步执行代码现在恢复到正常速度。


0
投票

帮助我的是禁用诊断工具。

工具/选项/调试/常规/启用诊断工具

Visual Studio 2015(版本14)


0
投票

启用“.NET Framework源步进”后,我遇到了这个问题。关闭后,步进速度提高了很多。特别是,重新启用“启用我的代码”(选项>调试>常规)删除了我遇到的大约一半的延迟。

另一半是由于加载了比我需要的更多的符号(选项>调试>符号)。有一次我需要定义符号位置,但我不再,所以我可以取消选中它们并单击“清空符号缓存”。如果列出了_NT_SYMBOL_PATH,则表示您已定义此环境设置,并且Visual Studio不允许您取消选中它。您需要删除该设置。有关符号设置的更多信息(https://blogs.msdn.microsoft.com/visualstudioalm/2015/01/05/understanding-symbol-files-and-visual-studios-symbol-settings/


0
投票

我有同样的问题,我删除了所有可变手表,它帮助了很多!因为调试期间的每一步都会重新加载所有手表,这需要时间......

解决方案:从Debug菜单中选择Windows,然后选择Watch,然后单击Watch 1,Watch 2,Watch 3或Watch 4.将出现菜单并右键单击它们以清除它们。


0
投票

如果您有病毒扫描程序(启用了实时扫描),请检查扫描中是否排除了C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe *。

在我的情况下,在全公司推出新病毒扫描程序后,调试变得非常缓慢。过了一会儿,我们发现msvsmon.exe的实时扫描是罪魁祸首。

*根据您的安装文件夹修改路径


-1
投票

清除监视窗口中的所有条目。


20
投票

我在VS 2008中注意到,如果在调试工具栏中选择了“在源中显示线程”按钮,则步进的速度至少要慢10倍。

我还注意到,如果你的应用程序需要很长时间才能以调试模式启动,如果只是在Debug菜单下单击'Delete All Breakpoints',就可以解决这个问题。这解决了一个恼人的问题,即使我当时只设置了一些断点。

塞拉斯


10
投票

尝试关闭调试器选项中的“启用属性评估...”设置,它应该使调试更快(阅读更多:Fix: Make Debugging Faster with Visual Studio):

alt text (来源:flickr.com


7
投票

在Visual Studio中禁用源中的显示线程。并关闭调用堆栈跟踪窗口。


5
投票

除了上面提到的所有问题。

“Disassembly”选项卡(在后台打开)会使调试速度降低1-2步。 (不确定它是否总是这样发生)。


3
投票

我有同样的问题,特别是在调试具有许多线程的应用程序时。

它是由“在源代码中显示线程”功能引起的。

请参阅以下链接了解详细信息:

Code Project: Show threads in source

Visual Studio Single Step Performance Fixes

禁用此功能后,问题已得到解决。


1
投票

有很多事情可能导致Visual Studio变慢。源代码中过多的断点和显示线程可能是最常见的两种,但是你并不关心最常见的是什么,你关心的是什么使得Visual Studio对你来说很慢*。

因此,如果删除断点并关闭源中的显示线程不起作用,则需要配置Visual Studio。这可以让您找到您的情况所特有的性能问题。可以在此处找到有关如何执行此操作(解决两个单独的Visual Studio性能问题)的说明:

http://randomascii.wordpress.com/2013/03/03/visual-studio-single-step-performance-fixes/

此处详细介绍了对其他人代码中性能问题的更多调查:

http://randomascii.wordpress.com/category/investigative-reporting/


1
投票

接受的答案几乎没有相关性或帮助!

这些是一些可能使调试速度极慢的问题:

  • “在源代码中显示线程”(请参阅​​screensht)。如果您有一个重度多线程的应用程序,则无法在启用此选项的情况下进行调试。这个选项的作用是它尝试在其他线程的同一文件执行位置显示它们是否也执行相同的代码。因此,如果您有许多线程,调试器需要检查它们所在的所有线程。如果你有很多线程,这可能会使调试器的每一步都非常慢。 enter image description here
  • 许多有条件甚至是常规断点。特别是如果这些是某些头文件的某些内联函数。
  • 在调用堆栈中启用“显示外部代码”也会使其变慢。

1
投票

禁用“在源中显示线程”(如果已启用),并关闭并行堆栈线程,任务和GPU线程窗口(如果它们已打开)。这些导致调试器为进程中的每个线程遍历调用堆栈。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.