Visual Studio и очень большие проекты - дадим Visual Studio больше памяти!
Сегодня (хотя точнее будет сказать - вчера, все-таки за 12 хорошо так перевалила стрелка) попросили меня посмотреть на проблему с Visual Studio 2008 - у ребят при работе с одним из проектов постоянно возникает ошибка "Not enough storage is available to complete this operation".
Удалось разобраться, что эта ошика возникает когда процесс Visual Studio начинает приближаться по пордеблению памяти к 2 Гб , а в предоставленном мне проекте это вполне вероятная ситуация (в решении более 40 проектов, плюс все разработчики используют большое количество различных add-in'ов для контроля кода, построения отчетов реального времени по коду и т.п.). Тут мы сталкиваемся с такой интересной ситуацией - 4 Гб памяти на машине (правда все машины x86, поэтому видно только 3.2 Гб), но Visual Studio не может использовать и 2 Гб - надо это исправить. Думаю, что подобные проблемы возникают и на x64 системах. Если кто-нибудь сталкивался - запулите коммент к этому сообщению, пожалуйста.
Для исправления такого поведения пришлось использовать драконовский метод:
- Скопируйте файл devenv.exe из папки Program Files\Microsoft Visual Studio 9.0\Common7\IDE в devenv.bak - он может нам пригодиться, если что-то случится с оригинальным файлом.
- Запускаем Visual Studio Command Promt (в меню "Пуск" в папке Visual Studio 2008\Visual Studio Tools есть ярлык, ведущий на %comspec% /k ""c:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"" x86)
- В открывшейся командной строке набираем cd c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE (или на каком диске логическом у вас Program Files?)
- Выполняем команду editbin /LARGEADDRESSAWARE devenv.exe чтобы разрешить использовать большее адресное пространство
- Теперь думаем, что у нас за операционная система - нам же нужно сказать ОС, что пользовательскому процессу можно и 3 Гб выделить
- Vista - выполняем в командной строке BCDEDIT /Set IncreaseUserVa 3072
- XP - редактируем boot.ini и добавляем к строке, относящейся к ОС /3GB, чтобы получилось нечто вроде:
[operating systems] multi(0)disk(0)rdisk(0)partition(2)\WINNT="????" /3GB
- Перезагружаемся (скрестив пальцы на удачу, разумеется)
Запускаем Visual Studio и начинаем добавлять в проекты 300 Мб файлы, пусть Visual Studio порадуется. У меня, правда так и не получается за 2 Гб перевалить, но студия даже не думает падать. Работает, зверюга!
Почти 2 Гб - полет нормальный.
P.S. Вот только написал пост, порадовался, как нашел в Live.com другое решение - тула от JetBrains, которая уменьшает фрагментацию адресного. Достаточно скачать архив, распаковать в папку с devenv и запускать студию файлом devenv2008_wrap. Но вариант выше более гиковский :)
Comments
- Anonymous
September 05, 2008
Не успел опубликовать предыдущее сообщение , как тут же получил письмо примерно такого содержания - "у