调试有时很慢

时间:2009-04-30 05:04:58

标签: visual-studio debugging

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

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

17 个答案:

答案 0 :(得分:20)

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

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

西拉斯

答案 1 :(得分:10)

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

alt text
(来源:flickr.com

答案 2 :(得分:7)

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

Disable Show Threads In Source. after Press debug Button

答案 3 :(得分:5)

除上述所有问题外。

“反汇编”选项卡(在后台打开)会使调试速度每步减慢1-2秒。 (不确定它是否总是这样发生)。

答案 4 :(得分:3)

我遇到了同样的问题,尤其是在调试具有多个线程的应用时。

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

有关详细信息,请参阅以下链接:

Code Project: Show threads in source

Visual Studio Single Step Performance Fixes

禁用此功能后,问题已修复。

答案 5 :(得分:1)

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

enter image description here

答案 6 :(得分:1)

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

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

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

答案 7 :(得分: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/

答案 8 :(得分:0)

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

答案 9 :(得分:0)

如果您有病毒扫描程序(启用了实时扫描),请检查扫描中是否 排除

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

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

答案 10 :(得分:0)

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

解决方案:从Debug菜单中选择Windows,然后选择Watch,然后单击Watch1,Watch2,Watch3或Watch4。将出现菜单并右键单击它们以清除所有菜单。

答案 11 :(得分: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/

答案 12 :(得分:0)

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

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

Visual Studio 2015(第14版)

答案 13 :(得分:0)

“在源代码中显示主题”建议没有帮助。

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

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

答案 14 :(得分:0)

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

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

答案 15 :(得分:-1)

清除观察窗口中的所有条目。

答案 16 :(得分:-1)

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

  1. 进入Visual Studio的首选项。查找与动画菜单等相关的所有选项。它们有时会变得很密集,而不是特定于调试,因为你通常不打开菜单,它似乎有帮助。

  2. 在计算机本身上,如果右键单击我的计算机。转到高级选项卡并在性能下。如果您调整计算机以获得最佳性能,它将加快速度。它摆脱了计算机上任何不错的样式,但它会释放出你想要的一些内存。

  3. 关闭所有不必要的程序。 Visual Studio的内存越多,表现就越好。