Get Visual Studio to use (better) more than 2GB of memory
I actually didn't know that a 32bit program could not use more than 2Gb of virtual memory by default. It makes sense, now that I think of it, but I just didn't make the connection. My office computer has 3Gb of memory and there is also the swap file, so having a program using more than 2GB of memory would be beneficial. And I am talking about Visual Studio here, especially since today I got an error I've never seen before: "Not enough storage is available to complete this operation".
So I've stumbled upon this article: Hacking Visual Studio to Use More Than 2Gigabytes of Memory which told me how to convince Visual Studio to use more than 2GB of memory. Also, since I am a ReSharper user, I found this little wrapper for Visual Studio that makes it use a different memory allocation method that reduces memory fragmentation: OutOfMemoryException Fix.
Short story shorter (for XP users with Visual Studio 2008 only - read the full articles for other configuration):
Update:
Thanks to the warnings from Lex Li, I went to study the /3G switch some more. The most important thing seems to be to also use the /USERVA switch to tune the /3G functionality.
More details here:
Memory Management - Demystifying /3GB
Summary of the recent spate of /3GB articles.
So I've stumbled upon this article: Hacking Visual Studio to Use More Than 2Gigabytes of Memory which told me how to convince Visual Studio to use more than 2GB of memory. Also, since I am a ReSharper user, I found this little wrapper for Visual Studio that makes it use a different memory allocation method that reduces memory fragmentation: OutOfMemoryException Fix.
Short story shorter (for XP users with Visual Studio 2008 only - read the full articles for other configuration):
- Edit boot.ini to have the /3GB option
- Use editbin /LARGEADDRESSAWARE devenv.exe to change Visual Studio to have IMAGE_FILE_LARGE_ADDRESS_AWARE in the process header (editbin can be found in \Program Files\Microsoft Visual Studio 9.0\VC\bin\
- Download the Jetbrains devenv wrappers and change the signature of the Visual Studio shortcut to point to devenv2008_wrap.exe instead of devenv.exe
- (of course) Restart the computer
Update:
Thanks to the warnings from Lex Li, I went to study the /3G switch some more. The most important thing seems to be to also use the /USERVA switch to tune the /3G functionality.
More details here:
Memory Management - Demystifying /3GB
Summary of the recent spate of /3GB articles.
Comments
<p>Thank you, Lex. I've updated my post to reflect your warnings and to add some more information.</p>
Siderite<p>Note enabling the 3GB switch can lead to significant system performance issue sometimes. It is not recommended unless you understand all its harms as the author of this blog post.</p>
Lex Li