Visual Studio减慢了应用程序

这是一个模糊的问题,但有什么我可以做的关于视觉工作室减慢应用程序? 如果我在visual studio之外运行可执行文件,它将以非常可接受的速度运行。 如果我在启动调试器的visual studio中运行它,它的运行速度会慢近200倍。 我试图卸载并重新安装Visual Studio无济于事。 我删除了所有的插件(ant和resharper),但仍然没有。 我在另一台计算机上的视觉工作室里运行了这个项目,速度很正常。 我该怎么做才能解决这个问题? 它似乎最近发生过,但可能会逐渐发生。

更新:我现在在其他视觉工作室中运行它,并且减速保持不变。 我唯一的结论就是以我在应用程序中的速度分配内存的方式导致调试器以某种方式降低速度。 有没有人经历过这种情况?

在调试器中运行时,exception非常昂贵,并且如果抛出并捕获了许多应用程序,则可能会降低应用程序的速度。 查看Visual Studio的“输出”窗口,您可以在其中查看抛出的exception。

你是从符号服务器下拉符号吗? 这是经济放缓的常见原因。

如果已设置,请检查_NT_SYMBOL_PATH,如果使用VS 2008 +,则检查调试选项

通常,Visual Studio调试器不会减慢速度。 这必须是您的应用程序特定的东西。

例如,最近有一个问题来自于在调试时获得OutOfMemoryException而在调试器外部运行时没有获得OutOfMemoryException的人。 看来这是由于他分配内存的方式 – 该技术对加载到内存中的程序集数量很敏感。 大多数程序对调试器的这种被动效果不敏感。 也许你也遇到了与调试器有关的一些影响,但还不完全是调试器的“错误”。


Mitch Wheat建议你可能正在运行病毒扫描程序。 这让我想起了一个类似的软件,它自己开始关注Visual Studio的加载和卸载程序集。 这是一个提供“端点安全性”的VPN软件。 它旨在检查连接到VPN时正在运行的程序,并确保它们符合安全策略。 这意味着要了解每个装载的assembly。

Visual Studio加载和卸载了大量程序集。 这个VPN软件对这个事实如此感兴趣,它实际上引起了一个BSOD – 我唯一一次看到一个应用程序导致BSOD – 因为它安装了文件系统filter或其他一些,并且在内核模式下被通知。 加上某种错误足以让系统崩溃。

因此,一般来说,寻找一些关心计算机上正在运行的软件。 也许是“端点安全”,可能是病毒扫描程序,可能是搜索索引器,或者其他什么。

问题是,如果Windows检测到您的程序在调试器下运行,则会在特殊的Debug Heap中出现问题。 这似乎发生在操作系统级别,并且与编译的任何调试/发布模式设置无关。

您可以通过设置环境变量来解决此“function”:_NO_DEBUG_HEAP = 1

同样的问题让我坚持了一段时间; 今天我发现了以下内容,从这篇文章中衍生出来: http : //blogs.msdn.com/b/larryosterman/archive/2008/09/03/anatomy-of-a-heisenbug.aspx

VS调试器为您的代码添加了其他命令,以便允许它带来的所有function。 缺点可能是减慢您的应用程序。

也许这就是为什么你的应用程序在另一台计算机上运行可执行文件时工作正常的原因。

然后这是一个不应该打扰你的问题,因为应用程序的发布版本很重要 – 如果最终版本运行良好,谁会关心调试版本的性能。