自动功能挂起

如果可用系统内存降至 200 MB 或更低,则 Visual Studio 在代码编辑器中显示以下消息:

挂起完整解决方案分析的警报文本

当 Visual Studio 检测到内存不足的情况时,它会自动挂起某些高级功能,以帮助其保持稳定。 Visual Studio 继续像过去一样运行,但其性能会下降。

在内存不足的情况下,将执行以下操作:

  • Visual C# 和 Visual Basic 的实时代码分析减少到最小范围。

  • Visual C# 和 Visual Basic 的垃圾回收 (GC) 低延迟模式已禁用。

  • Visual Studio 缓存已刷新。

提高 Visual Studio 性能

有关如何在处理大型解决方案或内存不足的情况时提高 Visual Studio 性能的提示和技巧,请参阅大型解决方案的性能注意事项

实时代码分析减少到最小范围

默认情况下,对打开的文档和项目执行实时代码分析。 可以自定义此分析范围,使其减少到当前文档或增加到整个解决方案。 有关详细信息,请参阅如何:配置托管代码的实时代码分析范围。 在内存不足的情况下,Visual Studio 将实时分析范围强制减少到当前文档。 但是,可通过在信息栏中选择重新启用按钮(当它出现时)或重新启动 Visual Studio 来重新启用首选分析范围。 “选项”对话框始终显示当前实时代码分析范围设置。

GC 低延迟已禁用

若要重新启用 GC 低延迟模式,请重启 Visual Studio。 默认情况下,Visual Studio 会在键入时启用 GC 低延迟模式,以确保键入内容不会阻止任何 GC 操作。 但是,如果内存不足的情况导致 Visual Studio 显示自动挂起警告,则会为该会话禁用 GC 低延迟模式。 重新启动 Visual Studio 会重新启用默认 GC 行为。 有关详细信息,请参阅 GCLatencyMode

Visual Studio 缓存已刷新

如果继续你的当前开发会话或重新启动 Visual Studio,则所有 Visual Studio 缓存都会立即清空,但会开始重新填充。 已刷新的缓存包括以下功能的缓存:

  • 查找所有引用

  • 定位到

  • 添加 Using

此外,还会清除用于内部 Visual Studio 操作的缓存。

备注

自动功能挂起警告只会在每个解决方案的基础上出现一次,而不会在每个会话的基础上出现。 这意味着,如果从 Visual Basic 切换到 Visual C#(反之亦然)并遇到另一个内存不足的情况,则可能会出现另一个自动功能挂起警告。