4

IDE配置:

Visual Studio 2008 + Resharper 4.5.1 + Agent Smith 1.1.8。最后一个加载项没有任何复杂的配置。

解决方案说明:

33 个类库 + 200 多页的网站。

症状:在 Resharper 上运行一个小时后,IDE 开始抛出 OutOfMemoryExection 异常。正常工作是不可能的,只有重新打开 Visual Studio 才能有所帮助。

有人有这样的问题吗?是否可以将 Resharper 配置为消耗更少的内存?什么 Resharper 功能消耗的内存最多?

4

3 回答 3

8

欢迎来到 ReSharper 的世界。这节课叫做“你得到你所支付的”。

ReSharper 的各种功能确实需要您了解整个解决方案。这些信息需要记忆。解决方案范围的分析可能是最占用内存的,但即使更改公共方法的签名也需要了解调用该方法的所有代码。

有时您可以做的一件事是使用较小的“子解决方案”。例如,如果要重构 DAL 层,则只需要 DAL 和任何单元测试项目。我有时会在解决方案资源管理器中选择解决方案,然后使用 File->Save Solution As 以不同的名称将其保存在同一文件夹中。然后我删除项目,直到剩下我想要的。不要保存您要删除的项目(在开始之前保存它们)。当你得到你想要的集合时,只需执行“全部保存”。

如果它变得太烦人,您还可以让 ReSharper 在状态栏中显示内存使用情况。该功能已经使用了很长时间

于 2009-08-13T14:05:57.167 回答
6

如果您在 64 位 Windows 上(或者您很乐意使用 /3GB 开关运行 32 位 Windows),那么您可以将 Visual Studio 配置为 /LARGEADDRESSAWARE,而不是 2GB,它将给它 4GB(或 /3GB 上 3GB) 的地址空间来玩。

例如,参见http://old.stevenharman.net/blog/archive/2008/04/29/hacking-visual-studio-to-use-more-than-2gigabytes-of-memory.aspx,它给出了下列的:

editbin /LARGEADDRESSAWARE devenv.exe

此外,请参阅有关该主题的 JetBrains 页面:http: //www.jetbrains.net/confluence/display/ReSharper/OutOfMemoryException%2BFix

于 2009-08-13T14:09:43.173 回答
0

过去,我在早期版本的 Resharper(和其他类似的插件)和大型解决方案中看到了这个和类似的问题,这也是我试图远离它们的原因之一。我知道的唯一解决方案是重新启动 Visual Studio、卸载 Resharper 或将其关闭,除非您确实需要使用它。

对于它的价值,Visual Studio 2010 应该有助于解决这些类型的问题。

于 2009-08-13T14:01:01.333 回答