Resharper在大解决方案上抛出OutOfMemoryException

时间:2009-08-13 13:50:26

标签: c# visual-studio resharper out-of-memory

IDE配置:

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

解决方案说明:

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

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

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

3 个答案:

答案 0 :(得分:8)

欢迎来到ReSharper世界。本课程称为“你得到你付出的代价”。

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

有时你可以做的一件事就是使用更小的“子解决方案”。例如,如果要重构DAL层,则只需要DAL和任何单元测试项目。我有时会在解决方案资源管理器中选择解决方案并使用文件 - >保存解决方案,以便在同一文件夹中使用其他名称保存它。然后我删除项目,直到我离开我想要的那些。 保存要删除的项目(在开始之前保存它们)。当你得到你想要的设置时,只需要保存所有。

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

答案 1 :(得分: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

另外,请参阅主题为http://www.jetbrains.net/confluence/display/ReSharper/OutOfMemoryException%2BFix

的JetBrains页面

答案 2 :(得分:0)

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

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