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