【问题标题】:VS2015 Update 2 message: "Low memory detected. Full solution analysis disabled for this solution."VS2015 更新 2 消息:“检测到内存不足。为此解决方案禁用了完整的解决方案分析。”
【发布时间】:2016-07-24 09:45:51
【问题描述】:

我刚刚使用 Update 2 更新了 Visual Studio 2015。

现在,经过几个小时的正常工作,我收到:“检测到内存不足。此解决方案已禁用完整的解决方案分析。”出现在我的 VS2015 编辑器停靠面板的顶部。

我看到Microsoft Connect 报告了一个错误。

注意事项:

  • 我正在使用 Resharper。
  • 我的解决方案非常大,大约有 32 个项目。

如果有人有解决方法或提示如何解决此问题,请告诉我。

更新:我的感受与 Anders Forsgren 几乎相同(第一条评论)。在我看来,这是对情况的一个很好的总结。

更新 2 (2016-04-20) 我最近(3 天前)对我的 Framework.Net 安装包(来自“程序和功能”)进行了大清理,我删除了大约20-30 包。有些是俄语的。我还重新安装了 Visual Studio 和 ReSharper。所有这些似乎都为我的环境增加了一些稳定性(更少或没有更多的冻结->时间会证明)。 此外,最近出现了一个新的 (2016-04-19) .NET Framework Repair Tool Version。也许它可以帮助解决我们的一些问题(如果有的话)?

更新 3 经过一些测试并阅读了一些人的文字。似乎它与 .Net 框架本身或 Resharper 无关。好像和VS2015本身有关,可能是Roslyn。我没有成功从 VS2015 中删除 Roslyn/CodeAnalysis,它似乎是必不可少的部分。听起来我们必须等待 Microsoft 修复才能拥有稳定的环境。

更新 4 (2016-04-26) 请参阅 John Atwood 的回答。很多信息。我刚刚开始测试它的答案。更新 3 应该可以解决这个问题(如果可用???)。

第 5 次更新(2016-04-26 + 6 小时) 在 VS 自身完成 1 次重启后,出现了令人难以置信的缓慢以及一条消息“内存不足...”,我可以确认禁用完整的解决方案分析并不能解决问题,至少在我的机器上是这样。我目前不知道任何适用于我的机器的修复/解决方法。

更新 6 (2016-06-15) Mladen Mihajlovic 叫醒了我。我刚刚意识到我忘了告诉 VS2015 Update 3 RC 的可用性(请注意,我认为它是第二个版本:Update 3 RC2)。它自 6 月 7 日起在 MSDN 可用,RC1 = 14.0.25401.00 而 RC2 = 14.0.25402.00。这听起来要稳定得多(我强烈推荐它)。

【问题讨论】:

  • 我认为这是解决之前存在的问题的一种解决方法,但是在 update2 之前它并没有自动禁用它,而是性能变得很糟糕。最重要的是,对于一个大型解决方案(可能就代码大小而不是项目数量而言),完整的解决方案分析仍然不切实际,因此您根本不想要它。现在这会自动发生。将其关闭解决该问题的方法。 Roslyn 团队可能正在研究解决方案。我有一个包含 50k 类型的 100 多个项目解决方案,Update1 无法使用,在 Update2 中我直接在解决方案加载时收到错误。
  • 非常感谢您提供的信息。这可能解释了为什么我的 VS2015 Update 1 也会偶尔冻结。现在至少,有一个后备,我们可以继续工作。我希望 Roslyn 团队能尽快找到解决方案 :-) !
  • 我投票决定将此问题作为题外话结束,因为存在一个现有的 microsoft connect 问题。
  • 我也有同样的问题。 VS2015 更新。 2 + ReSharer(均已更新)。我们有大约 400 个项目正在解决中。我只在 ReSharper 中遇到过这种情况。但不幸的是,我与 ReSharper 几乎同时安装了更新 2。所以我不确定是谁的错。 VS 只是用完了 32 位应用程序的可用内存。拥有 64 位 VS IDE 可能会有所帮助。我有足够的空闲内存(64GB)——所以我讨厌应用程序告诉我它们内存不足。

标签: memory visual-studio-2015


【解决方案1】:

经过非常简短的分析,问题似乎与默认启用的 CodeAnalysis 实现有关,我找不到任何可以禁用它的配置文件选项。

这里是reference search results

不过,我暂时能够成功禁用 CodeAnalysis VS 插件,而且它似乎对 VS 运行的流畅程度产生了影响。

唯一的变化是从以下位置重命名 CodeAnalysis 扩展插件文件夹:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\CodeAnalysis

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\CodeAnalysis_disabled

这显然会降低 VisualStudio 功能集并可能导致一些副作用,但由于我使用的是 ReSharper 自己的 alanylsis 功能,VS CodeAnalysis 只是过度。

更新:

看起来 Microsoft.VisualStudio.CodeAnalysis.VCPlugin.dll 也被添加到 GAC 并被 gacutil 保护不被删除。要强制将其从 GAC 中删除,需要执行以下步骤:

  1. 删除以下注册表项,但先保存以防万一:

Windows 注册表编辑器 5.00 版

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Assemblies\Global] "Microsoft.VisualStudio.CodeAnalysis,version=\"14.0.0.0\",publicKeyToken=\"b03f5f7f11d50a3a\",processorArchitecture=\"MSIL\",fileVersion=\"14.0.23107.0\",culture=\"neutral\" "=十六进制(7):6a,\ 00,5f,00,65,00,7e,00,5a,00,61,00,47,00,71,00,2a,00,3f,00,6a,00,61,00,31,00, \ 30,00,6e,00,66,00,70,00,4e,00,2d,00,44,00,54,00,65,00,73,00,74,00,54,00,6f, \ 00,6f,00,6c,00,73,00,5f,00,65,00,6e,00,75,00,3e,00,39,00,42,00,21,00,4e,00, \ 63,00,6a,00,24,00,58,00,70,00,45,00,42,00,75,00,6a,00,21,00,56,00,3d,00,2d, \ 00,31,00,51,00,32,00,00,00,68,00,6a,00,4f,00,46,00,70,00,48,00,2d,00,24,00, \ 4b,00,34,00,69,00,4f,00,68,00,33,00,72,00,60,00,65,00,62,00,28,00,36,00,43, \ 00,6f,00,64,00,65,00,5f,00,41,00,6e,00,61,00,6c,00,79,00,73,00,69,00,73,00, \ 5f,00,54,00,6f,00,6f,00,6c,00,73,00,5f,00,31,00,31,00,39,00,38,00,37,00,5f, \ 00,78,00,38,00,36,00,5f,00,65,00,6e,00,75,00,3e,00,39,00,42,00,21,00,4e,00, \ 63,00,6a,00,24,00,58,00,70,00,45,00,42,00,75,00,6a,00,21,00,56,00,3d,00,2d, \ 00,31,00,51,00,32,00,00,00,00,00

  1. 从 GAC 卸载程序集

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\x64\gacutil.exe" /u "Microsoft.VisualStudio.CodeAnalysis,版本=14.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a,处理器架构=MSIL" /f

还建议将 CodeAnalysis_disabled 文件夹移动到另一个位置,因为我不知道 VS MEF 加载器是如何实现的以及它将在哪里搜索插件。

【讨论】:

  • 注意:您可以通过以下方式禁用它:Menu-ReSharper-Options-Code Inspection-“启用代码分析”。
  • 我过去(在更新 2 之前)已经尝试过您的建议,但它并没有阻止 Visual Studio 冻结。它似乎发生得更少,但仍然冻结。 4 月 18 日星期一(3 天前)我刚刚从“程序和功能”中卸载了 20-30 Framework.net 包,并完全重新安装了带有 Update 2 的 Visual Studio。它看起来好多了,至少关于冻结,因为我已经一个多星期没有收到记忆信息了。在接受答案之前,我将等待确定正确的修复。谢谢。
  • 我并不介意 ReSharper 自己的代码分析。实际上,VS 可能仍会因大型代码库而冻结是有道理的,因为它是一个 32 位应用程序,显然在功能不断增长之后需要 64 位飞跃来应对内存限制。请把我的回答当作一个提示,这有助于暂时禁用一个内存和 CPU 饥渴的功能。也请检查更新。
  • 我正在测试您的解决方案。谢谢!今天,我的 VS2015 update 2 又重新启动了。相当激进的修复,但如果它有效:-) !!!我会及时通知您我计算机上的行为...
  • 我刚刚收到相同的消息:“检测到内存不足...”尽管我按照您的说明进行操作。我认为代码分析仍然存在。似乎禁用 CodeAnalysis 真的很难。我想知道 VS2015 让它正常工作是否不重要(.. Roslyn 的一部分)。
【解决方案2】:

我已经忍受这个问题一段时间了。在使用 TypeScript 文件时,我会看到内存使用量稳步攀升,最终导致崩溃。如果这可能是您的情况,请检查您的项目中是否有 rxjs。如果版本是 5.0.0-beta.2,则升级到 5.0.0-beta.3(或更高版本)进行修复。

更多详情:https://github.com/Microsoft/TypeScript/issues/7344#issuecomment-198392320

【讨论】:

  • 我只使用 WPF。你说的是参考吗?如果是的话,我从来没有在我的任何项目中引用过 rxjs。
【解决方案3】:

此问题的解决方法是通过转到工具 -> 选项 -> 文本编辑器 -> C#(或基本) -> 高级 -> 取消选中“启用完整的解决方案分析”来禁用完整的解决方案分析。

这似乎是 Rosyln 团队正在处理的一个错误 https://github.com/dotnet/roslyn/issues/10365

【讨论】:

  • 谢谢,我刚刚禁用了 VS 解决方案分析。您的链接包含很多有用的信息。
  • 2 小时后 ==> 没有内存消息,但 VS 崩溃并重新启动。但是,在禁用完整解决方案分析后,我没有重新启动。现在它完成了:-)!
  • 我不知道它是否修复了内存消息错误。但它肯定不能解决内存问题,一段时间后不可避免的缓慢(比如我的情况下是 4 小时)。并最终锁定并死亡。一个错误仍然存​​在。它不能解决问题。 (2016 年 4 月 26 日,尝试解决方法 6 小时后)。
  • 知道了! “检测到内存不足。已禁用此解决方案的完整解决方案分析”尽管我的完整解决方案分析已被禁用。它太慢了,我不得不关闭并重新启动。非常有生产力!!!一个小时后。
  • 谁能解释一下“启用完整解决方案分析”实际上做了什么?我已经禁用它,但我也收到“检测到内存不足”消息。
【解决方案4】:

我的答案是关闭并打开 Visual Studio。

我没有选中“启用完整的解决方案分析”,但我仍然收到 Visual Studio 消息“检测到内存不足。为此解决方案禁用了完整的解决方案分析。” Visual Studio 2015 版本是14 Update 2。我发现我必须关闭VS。

VS 无法打开 TFS 任务,除非我关闭并重新打开 VS,否则我无法签入代码。谢天谢地,我有一个新的固态硬盘驱动器,所以 VS 关闭/打开不会让我像以前那样等待很长时间。但仍然是一个令人失望的麻烦。

【讨论】:

  • 谢谢,但这就是我已经在做的事情。我正在寻找一个不那么令人不安的解决方案:-)!
【解决方案5】:

我读过一些文章将这个问题描述为超出虚拟地址空间,因为某些内部内存结构(可能是列表)超过 2GB。 2GB 是 VS 2015 等 32 位进程的默认虚拟地址空间。但you can adjust it 最大为 3GB。

我找到的解决方案来自here

Start▸All Programs▸Accessories▸right-click on Command Prompt▸Run as administrator

Run the following command:

bcdedit /set IncreaseUserVa 3072

Restart the computer.

这不是 100% 的解决方案,因为即使进程有 3GB 的 RAM,您最终也会用完虚拟地址空间。调整此开关后 VS 不再抱怨内存。

【讨论】:

  • 感谢 Ognyan,它可能会给您更多时间,但我不知道它的缺点。没有,为什么微软不设置它们自己?我更愿意等待更强大的解决方案。但也许有些人会喜欢它并尝试它。作为旁注,它看起来仅适用于 32 位版本的 Windows(如第一句中所写)???我有 Windows 7 64 位
  • 我的猜测是,在只有 4 GB 可寻址内存的 32 位系统上没有其他选择。现在我有一台 32G 内存的机器,给这个过程增加一些没有问题——操作系统将有足够的空间使用。您可以在link 上阅读此内容:“在 32 位 Windows 版本上,应用程序有 4 GB 的可用虚拟地址空间。虚拟地址空间被划分为 2 GB 可供应用程序使用,而另一个2 GB 仅供系统使用。”
  • 这听起来很有趣!如果/当 vs2015 再次崩溃时会尝试。谢谢!
  • @OgnyanDimitrov,Windows 发布了修复 VS2015 崩溃的新更新。结果,我没有尝试这个解决方案。
  • @OgnyanDimitrov,这是一个常规的 Windows 更新。大约在 5 月 9 日至 12 日,他们发布了大量更新(大约 30 个),其中一个(或几个)是修复程序。确保已安装所有 Windows 更新。
【解决方案6】:

我希望我有一颗神奇的子弹。但是这对我有帮助,但现在总能解决问题。 VS2015 更新 2. Resharper 2016.1.1。所有项目都是 vNEXT。

  1. 在 Resharper --> 选项 --> 代码检查 --> 设置中。添加尽可能多的 wwwroot 文件夹。我还在 wwwroot 下添加了每个文件夹,因为它似乎没有级联。在文件掩码中,添加任何框架 *.js 或 *.css(即 *.min.js、*jquery.js、*angular.js、*.min.css)。这一步有助于减少当我使用 Gulp、Grunt 构建 js/css 时 resharper 所做的“加载源文件”。

  2. 这并不理想,但是当我正在编写代码并且不打算进行测试时,我会卸载所有我不使用的项目,通常是在测试中。这似乎减少了 resharper/vs 使用的“托管内存”。

  3. 最后,有点烦人的是,我从不查看 VS 解决方案资源管理器中 bower_components 下的文件。我发现直接进入文件夹并使用 VSCODE 之类的东西来查看 JS/JSON 可以节省我的时间和挫败感。这让我相信,虽然 node_modules 和 bower_components 被“忽略”了,但它们实际上并没有被忽略,或者它与项目目录中的文件数量有关。

我等待 100% 的解决方案,但我希望这些帮助。

【讨论】:

  • 我正在更新我的体验。我禁用了 ReSharper 工具 --> 选项。安装了 CodeMaid。我仍然收到内存不足的错误。确实需要更长的时间才能得到错误,但我认为这不是 Resharper 问题,但确实认为 Resharper 让它更快地发生。这里还没有解决方案,但我很高兴这不是 Resharper 的错(本身)。
【解决方案7】:

几周后更新 3 可用,但没有人回答...

“Visual Studio Update 3”修复了该问题并解决了许多其他问题。必须!!!

我建议在安装更新 3 之前阅读此内容:来自 John Montgomery 的 Visual Studio 2015 Update 3 and .NET Core 1.0 Available Now

直接下载链接:Visual Studio Update 3

【讨论】:

    猜你喜欢
    • 2014-03-14
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多