16

我有一个解决方案,只有不到100个项目,它是C++和C#(主要是C#)的混合体。在VS2005中工作时,Visual Studio的工作集比VS2010的小得多。Visual Studio 2010 - 如何减少内存占用

我想知道是否有一些东西可以关闭,所以我可以在VS2010下开发32位操作系统而不会出现内存不足的情况。

+0

感谢您的期待。仅供参考,SQL二进制文件也知道大内存地址。我的问题特别是关于在32位上开发大型解决方案。 – GregC 2010-06-16 18:26:00

+1

然后我会参考Jared的回答。国际海事组织(无犯罪)解决方案中的100个项目纯属疯狂。 – 2010-06-16 19:07:42

+1

嗯,再次,VS2010中有什么东西可以关闭导致更轻的内存占用? – GregC 2010-06-16 23:05:36

回答

11

您可以尝试使用Solution Load Manager。它会让你将一些项目文件标记为按需加载或根本不加载。这可能有帮助。

4

你可以做的最好的事情就是分解你的解决方案。 Visual Studio并不是要在同一个解决方案中处理如此多的项目,并且因此会遇到性能问题。把你的解决方案分成5个不同的解决方案会让事情变得更好。

+0

不是真的重新:操作系统。事实上,64位操作系统可以为32位进程提供比32位进程多得多的虚拟机。 http://blogs.technet.com/b/markrussinovich/archive/2008/11/17/3155406.aspx – 2010-06-16 15:18:20

+0

@Dave确实是一个应用程序,旨在利用可以。我不相信Visual Studio会这样做。 – JaredPar 2010-06-16 15:22:40

+2

@Jared:为了检查,我在devenv.exe上运行了dumpbin/headers,并确认Visual Studio *可以*访问> 2GB,因为“应用程序可以处理大型(> 2GB)地址”标志被设置。 – 2010-06-16 16:38:15

2

如果你使用XP,升级到Vista或Windows 7将有助于它使用WPF。可能会减少UI渲染的内存占用量,否则这些内存使用兼容模式。

+7

升级到Windows 7将有所帮助。 Vista - 不是那么多。他们对Windows 7中图形堆栈的内存使用情况进行了彻底改进。其实,让我们假装Vista从未发生过。 – 2010-06-16 15:19:25

5

64位操作系统should help you out a bit here,如果您获得超过4GB的物理RAM。一个64位操作系统可以提供32位进程,并具有4 GB的虚拟内存,而32位操作系统最多只能提供2或3个演出,具体取决于您如何引导操作系统。

这就是说,100个项目是一个很胖的解决方案文件。也许现在会是一个很好的时间重新审视这个决定......

编辑:运行DUMPBIN /头作为文章的devenv.exe在规定的返回:

File Type: EXECUTABLE IMAGE 

FILE HEADER VALUES 
      14C machine (x86) 
       4 number of sections 
     4BA1FAB3 time date stamp Thu Mar 18 06:04:35 2010 
       0 file pointer to symbol table 
       0 number of symbols 
       E0 size of optional header 
      122 characteristics 
        Executable 
        Application can handle large (>2GB) addresses 
        32 bit word machine 

因此,这将表明,在x64箱使用> 4GB的RAM可能会改善您的体验。在64位操作系统下,Visual Studio的虚拟机应该多达两倍...

+0

这听起来像是一个很好的解决方案,我们肯定会走上这条道路。有一点需要注意:我关闭了C++源代码的自动重新索引,这似乎有助于CPU利用率以及内存占用。 – GregC 2010-10-05 14:55:41

+0

在tools-> options-> Text Editors-> C++ - > Advanced下 – GregC 2010-10-05 14:56:14