Visual Studio性能建议旨在用于内存不足的情况,这种情况在极少数情况下可能会发生。在这些情况下,您可以优化某些您可能未使用的Visual Studio功能。以下提示不作为一般建议。
笔记
如果由于内存问题而在使用该产品时遇到困难,请通过反馈工具告诉我们。
如果将系统从Windows的32位版本升级到64位版本,则可将Visual Studio可用的虚拟内存量从2 GB扩展到4 GB。这使Visual Studio能够处理显着更大的工作负载,即使它是32位进程。
有关更多信息,请参见内存限制和在64位Windows上使用/ LARGEADDRESSAWARE。
禁用自动文件还原Visual Studio自动重新打开在上一个会话中保持打开状态的文档。根据项目类型和打开的文档,这可以将加载解决方案的时间最多延长30%或更多。Windows窗体和XAML等设计器以及一些JavaScript和打字稿文件的打开速度可能很慢。
当自动文档还原导致解决方案的加载速度明显变慢时,Visual Studio会在黄色栏中通知您。您可以按照以下步骤禁用自动重新打开文件的操作:
-
选择“工具” >“选项”以打开“选项”对话框。
-
在“项目和解决方案” >“常规”页面上,取消选择“在解决方案加载时重新打开文档”。
如果禁用自动文件还原,则使用“转到”命令之一可以快速导航到要打开的文件:
-
对于一般转到功能,选择编辑>转到>转到所有,或按Ctrl+E。
-
使用“编辑” >“转到” >“转到上一个编辑位置”,或按Ctrl + Shift + Backspace跳到解决方案中的最后一个编辑位置。
-
使用“转到最近的文件”可以查看解决方案中最近访问的文件的列表。选择编辑>转到>转到最近的文件,或按Ctrl+ 1,按Ctrl + [R 。
如果通常在调试会话期间内存不足,则可以通过更改一个或多个配置来优化性能。
-
启用我的代码
最简单的优化是启用“仅我的代码”功能,该功能仅为您的项目加载符号。启用此功能可以大大节省用于调试托管应用程序(.NET)的内存。默认情况下,在某些项目类型中已启用此选项。
要启用“仅我的代码”,请选择“工具” >“选项” >“调试” >“常规”,然后选择“启用仅我的代码”。
-
指定要加载的符号
对于本机调试,就内存资源而言,加载符号文件(.pdb)是昂贵的。您可以配置调试器符号设置以节省内存。通常,您将解决方案配置为仅从项目中加载模块。
要指定符号加载,请选择“工具” >“选项” >“调试” >“符号”。
将选项设置为“仅指定模块”而不是“所有模块”,然后指定要加载的模块。调试时,还可以在“模块”窗口中右键单击特定模块,以在符号加载中显式包括一个模块。(要在调试时打开窗口,请选择“调试” >“ Windows” >“模块”。)
有关更多信息,请参见了解符号文件。
-
禁用诊断工具
建议您在使用后禁用CPU性能分析。此功能会消耗大量资源。启用CPU性能分析后,此状态将在以后的调试会话中保持不变,因此值得在完成后将其关闭。如果不需要所提供的功能,可以通过在调试时禁用诊断工具来节省一些资源。
要禁用诊断工具,请启动调试会话,选择“工具” >“选项” >“调试” >“常规”,然后取消选择“调试时启用诊断工具”选项。
有关更多信息,请参见分析工具。
可以关闭某些工具或扩展程序以提高性能。
小费
通常,您可以一次关闭一个扩展,然后重新检查性能,从而找出性能问题。
有关.NET编译器平台(“ Roslyn”)性能注意事项的信息,请参阅大型解决方案的性能注意事项。
-
禁用完整解决方案分析
Visual Studio对整个解决方案执行分析,以便在调用生成版本之前提供有关错误的丰富体验。此功能对于尽快识别错误很有用。但是,对于大型解决方案,此功能可能会消耗大量内存资源。如果遇到内存不足或类似问题,可以禁用此体验以释放这些资源。默认情况下,此选项对Visual Basic启用,对C#禁用。
要禁用“完整解决方案分析”,请选择“工具” >“选项” >“文本编辑器”,然后选择“ Visual Basic”或“ C#”。选择“高级”,然后取消选择“启用完整解决方案分析”。
-
禁用CodeLens
当显示时,Visual Studio会对每个方法执行“查找所有引用”任务。CodeLens提供诸如内联显示引用数量之类的功能。这项工作是在单独的过程中执行的,例如ServiceHub.RoslynCodeAnalysisService32。在大型解决方案中或在资源受限的系统上,此功能可能会对性能产生重大影响。如果遇到内存问题,例如在4 GB的计算机上加载大型解决方案或此过程的CPU使用率很高时,可以禁用CodeLens释放资源。
要禁用CodeLens,请选择“工具” >“选项” >“文本编辑器” >“所有语言” >“ CodeLens”,然后取消选择功能。
笔记
CodeLens在Visual Studio的专业版和企业版中可用。
-
禁用扩展
扩展是添加到Visual Studio中的其他软件组件,它们提供新功能或扩展现有功能。扩展通常可能是内存资源问题的根源。如果遇到内存资源问题,请尝试一次禁用一个扩展,以查看它如何影响方案或工作流。
要禁用扩展名,请转到“扩展名” >“管理扩展名”,然后禁用特定的扩展名。
-
禁用地图模式
地图模式在滚动条上以微型显示代码行。默认情况下启用地图模式。
要禁用地图模式,请转到“工具” >“选项” >“文本编辑器” >“所有语言” >“滚动条”,然后在“行为”部分中,取消选择“将地图模式用于垂直滚动条”选项。
-
禁用自动换行
自动换行显示一长行代码的一部分,该部分超出了代码编辑器窗口的当前宽度。默认情况下,自动换行处于启用状态。
要为当前正在处理的项目禁用自动换行,请转至编辑>高级>自动换行。(您可以使用相同的菜单命令来切换此设置。)
要禁用所有项目的自动换行,请转到工具>选项>常规>文本编辑器>所有语言>常规,然后在“设置”部分中取消选择自动换行选项。
-
禁用XAML设计器
XAML设计器默认情况下处于启用状态,但仅在打开.xaml文件时才会消耗资源。如果您使用XAML文件,但不希望使用设计器功能,请禁用此功能以释放一些内存。
要禁用XAML设计器,请转到“工具” >“选项” >“ XAML设计器” >“启用XAML设计器”,然后取消选择该选项。
-
删除工作量
您可以使用Visual Studio安装程序删除不再使用的工作负载。通过跳过不再需要的程序包和程序集,此操作可以简化启动和运行时的成本。
-
将未跟踪的文件添加到本地.gitignore
Visual Studio对
git status
未跟踪的文件运行Git命令,以便在将新文件添加到存储库时提供无缝的体验。当存在大量未跟踪的文件时,git status
可能会占用额外的内存。要忽略这些文件并提高其性能git status
,可以将这些文件或文件夹添加到本地.gitignore文件中。要访问文件,请转到Git >设置> Git存储库设置。然后,在“ Git文件”部分中,单击“添加”以创建一个.gitignore文件,或者如果已有文件,则单击“编辑”。
CLR使用垃圾回收内存管理系统。在此系统中,有时不再需要的对象将使用内存。此状态是暂时的;垃圾回收器将根据其性能和资源使用启发式方法释放此内存。您可以通过在Visual Studio中使用热键来强制CLR收集所有未使用的内存。如果有大量垃圾等待收集,并且您强制进行垃圾收集,则应该在任务管理器中看到devenv.exe进程的内存使用量下降。很少需要使用此方法。但是,在完成昂贵的操作(例如完整构建,调试会话或解决方案打开事件)之后,它可以帮助您确定该进程真正使用了多少内存。因为Visual Studio是混合的(托管和本机),所以本机分配器和垃圾收集器有时可能会争夺有限的内存资源。在高内存使用情况下,可能有助于强制垃圾收集器运行。
要强制进行垃圾回收,请使用热键:Ctrl + Alt + Shift + F12,Ctrl + Alt + Shift + F12(按两次)。
如果强制垃圾收集可靠地使您的方案工作,请通过Visual Studio反馈工具提交报告,因为此行为可能是一个错误。
有关CLR垃圾收集器的详细说明,请参见垃圾收集基础。