Сообщение VS2015, обновление 2: «Обнаружен недостаток памяти. Полный анализ решения отключен для этого решения ».

83

Я только что обновил Visual Studio 2015 с обновлением 2.

Теперь, после нескольких часов нормальной работы, я получил: «Обнаружен недостаток памяти. Полный анализ решения отключен для этого решения». который появляется в верхней части панели док-станции моего редактора VS2015.

Я видел, что в Microsoft Connect было сообщено об ошибке .

Ноты:

  • Я использую Resharper.
  • Мое решение довольно большое, в нем ~ 32 проекта.

Если у кого-нибудь есть обходной путь или подсказка о том, что делать, чтобы решить эту проблему, сообщите мне.

Обновление: у меня почти те же чувства, что и у Андерса Форсгрена (первый комментарий). Для меня это хорошее обобщение ситуации.

Обновление 2 (2016-04-20) Недавно (3 дня назад) я сделал большую очистку установленных пакетов Framework.Net (из раздела «Программы и функции»), где я удалил около 20-30 пакетов. Некоторые были на русском. Я также переустановил Visual Studio и ReSharper. Все это, кажется, добавило стабильности моей среде (меньше или больше зависаний -> время покажет). Кроме того, недавно вышла новая (19.04.2016) версия средства восстановления .NET Framework . Возможно, это поможет решить некоторые из наших проблем, если таковые имеются?

Обновление 3 После некоторых тестов и прочтите текст некоторых людей. Похоже, что это не связано ни с самим .Net framework, ни с Resharper. Вроде как к самому VS2015, наверное Roslyn. Мне не удалось удалить Roslyn / CodeAnalysis из VS2015, похоже, это важная часть. Похоже, нам придется дождаться исправления Microsoft, чтобы получить стабильную среду.

Обновление 4 (2016-04-26) См. Ответ Джона Этвуда. Много информации. Я только начал проверять его ответ. Обновление 3 должно решить эту проблему (если доступно ???).

Обновление 5 (2016-04-26 + 6 часов) После 1 перезапуска, выполненного самой VS, одной невероятной медлительности, а также одного сообщения «Мало памяти ...», я мог подтвердить, что отключение анализа полного решения не решает проблему, на минимум на моей машине. В настоящее время я не знаю ни одного исправления / обходного пути, который работает на моей машине.

Обновление 6 (15.06.2016) Младен Михайлович разбудил меня. Я только что понял, что забыл сообщить о наличии VS2015 Update 3 RC (обратите внимание, что я думаю, что это второй релиз: Update 3 RC2). Он доступен с 7 июня в MSDN , RC1 = 14.0.25401.00, а RC2 = 14.0.25402.00. Звучит намного стабильнее (очень рекомендую).

Эрик Уэлле
источник
11
Я думаю, что это обходной путь для проблемы, которая существовала ранее, но до обновления 2 он не отключал его автоматически, вместо этого производительность стала ужасной. Суть в том, что для большого решения (вероятно, с точки зрения размера кода, а не количества проектов) полный анализ решения по-прежнему непрактичен, поэтому он вам просто не нужен. Теперь это происходит автоматически. Отключение - это способ решения проблемы. Команда Roslyn может работать над решением. У меня есть более 100 проектных решений с 50 тыс. Типов, Update1 было невозможно использовать, а в Update2 я получаю сообщение об ошибке непосредственно при загрузке решения.
Андерс Форсгрен
Большое спасибо за информацию. Вероятно, это объясняет, почему мой VS2015 Update 1 тоже иногда зависал. По крайней мере, сейчас есть запасной вариант, и мы можем продолжить работу. Надеюсь, команда Roslyn быстро найдет решение :-)!
Эрик Уэлле,
2
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что существует проблема с подключением Microsoft.
Дэниел А. Уайт
1
У меня такая же проблема. VS2015 обн. 2 + ReSharer (оба обновлены). У нас в разработке около 400 проектов. Я столкнулся с этим только с ReSharper. Но, к сожалению, я установил обновление 2 примерно в то же время, что и ReSharper. Так что я не уверен, кто виноват. В VS просто заканчивается доступная память для 32-битного приложения. Наличие 64-битной VS IDE могло бы помочь. У меня достаточно свободной памяти (64 ГБ), поэтому я ненавижу приложения, которые говорят мне, что им не хватает памяти.
Мартин Добшик

Ответы:

3

После очень краткого анализа кажется, что проблема может быть связана с реализацией CodeAnalysis, которая включена по умолчанию, и я не смог найти ни одной опции файла конфигурации, которая могла бы ее отключить.

Вот результаты справочного поиска .

Однако мне удалось на время успешно отключить плагин CodeAnalysis VS, и, похоже, это повлияло на плавность работы VS.

Единственное изменение заключалось в переименовании папки плагина расширения CodeAnalysis из:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\CodeAnalysis

к

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\CodeAnalysis_disabled

Это, очевидно, ухудшит набор функций VisualStudio и, возможно, вызовет некоторые побочные эффекты, но поскольку я использую собственные функции alanylsis ReSharper, VS CodeAnalysis был просто чрезмерным.

Обновить:

Похоже, что Microsoft.VisualStudio.CodeAnalysis.VCPlugin.dll также добавлен в GAC и защищен от удаления с помощью gacutil. Чтобы принудительно удалить его из GAC, необходимо выполнить следующие действия:

  1. Удалите следующий раздел реестра, но сначала сохраните его на всякий случай:

Редактор реестра Windows версии 5.00

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Installer \ Assemblies \ Global] "Microsoft.VisualStudio.CodeAnalysis, version = \" 14.0.0.0 \ ", publicKeyToken = \" b03f5f7f11d50a3a \ ", processorArchitecture = \" MSIL \ ", 14.0.23107.0 \ ", culture = \" нейтральный \ "" = шестнадцатеричный (7): 6a, \ 00,5f, 00,65,00,7e, 00,5a, 00,61,00,47,00,71 , 00,2a, 00,3f, 00,6a, 00,61,00,31,00, \ 30,00,6e, 00,66,00,70,00,4e, 00,2d, 00,44, 00,54,00,65,00,73,00,74,00,54,00,6f, \ 00,6f, 00,6c, 00,73,00,5f, 00,65,00,6e, 00 , 75,00,3e, 00,39,00,42,00,21,00,4e, 00, \ 63,00,6a, 00,24,00,58,00,70,00,45,00, 42,00,75,00,6a, 00,21,00,56,00,3d, 00,2d, \ 00,31,00,51,00,32,00,00,00,68,00,6a , 00,4f, 00,46,00,70,00,48,00,2d, 00,24,00, \ 4b, 00,34,00,69,00,4f, 00,68,00,33, 00,72,00,60,00,65,00,62,00,28,00,36,00,43, \ 00,6f, 00,64,00,65,00,5f, 00,41,00,6e, 00,61,00,6c, 00,79,00,73,00,69,00,73,00, \ 5f, 00,54,00,6f, 00,6f , 00,6c, 00,73,00,5f, 00,31,00,31,00,39,00,38,00,37,00,5f, \ 00,78,00,38,00,36, 00,5f, 00,65,00,6e, 00,75,00,3e, 00,39,00,42,00,21,00,4e, 00, \ 63,00,6a, 00,24,00 , 58,00,70,00,45,00,42,00,75,00,6a, 00,21,00,56,00,3d, 00,2d, \ 00,31,00,51,00, 32,00,00,00,00,00

  1. Удаляем сборку из GAC

"C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v10.0A \ bin \ NETFX 4.6 Tools \ x64 \ gacutil.exe" / u "Microsoft.VisualStudio.CodeAnalysis, Version = 14.0.0.0, Culture = нейтральный, PublicKeyToken = b03f5f7f11d50a3a, processorArchitecture = MSIL "/ f

Также рекомендуется переместить папку CodeAnalysis_disabled в другое место, поскольку я не могу сказать, как реализован загрузчик VS MEF и где он будет искать плагины.

тоже
источник
Примечание. Вы можете отключить его: Меню-ReSharper-Параметры-Проверка кода- «Включить анализ кода».
Эрик Уэлле
Я уже пробовал ваше предложение в прошлом (до обновления 2), но это не помешало Visual Studio зависнуть. Вроде бы меньше но все равно замерзают. Понедельник, 18 апреля (3 дня назад) Я просто удалил пакет 20-30 Framework.net из раздела «Программы и функции» и полностью переустановил Visual Studio с обновлением 2. Похоже, лучше, по крайней мере, насчет зависания, потому что я не получаю сообщения памяти уже больше недели. Я подожду, чтобы убедиться в правильности решения, прежде чем принимать ответ. Благодарю.
Eric Ouellet
Я не возражаю против собственного анализа кода ReSharper. На самом деле имеет смысл, что VS может по-прежнему зависать с большими кодовыми базами, поскольку это 32-битное приложение, которое, очевидно, после непрерывного роста функций требует 64-битного скачка, чтобы справиться с ограничениями памяти. Пожалуйста, относитесь к моему ответу как к подсказке, которая помогает на время отключить одну функцию, потребляющую память и процессор. Также проверьте обновление.
тоже
Тестирую ваше решение. Благодаря! Сегодня снова было перезапущено мое обновление VS2015 2. Довольно агрессивно, но если сработает :-) !!! Я буду держать вас в курсе о поведении на моем компьютере ...
Эрик Уэлле
Я получил такое же сообщение: «Обнаружен недостаток памяти ...», хотя я следовал вашим инструкциям. Я думаю, что Codeanalysis все еще существует. Похоже, отключить CodeAnalysis действительно сложно. Интересно, не критично ли для VS2015 правильная работа (.. часть Roslyn).
Эрик Уэлле
3

Обходной путь для этой проблемы - отключить полный анализ решения, перейдя в Инструменты -> Параметры -> Текстовый редактор -> C # (или Базовый) -> Дополнительно -> Снимите флажок «Включить полный анализ решения».

Похоже, это ошибка, над которой работает команда Rosyln https://github.com/dotnet/roslyn/issues/10365

Джон Этвуд
источник
Спасибо, я только что отключил анализ решений VS. По вашей ссылке много полезной информации.
Эрик Уэлле,
Через 2 часа ==> нет сообщений о памяти, но VS вылетает при перезапуске. Но после того, как я отключил полный анализ решения, я не перезапустился. Готово :-)!
Эрик Уэлле
1
Я не знаю, исправляет ли это ошибку сообщения памяти. Но это, конечно, не решает проблемы с памятью, неизбежную медлительность, которая возникает через некоторое время (например, 4 часа в моем случае). И в конце концов замки и умрут. Ошибка все еще существует. Это не решает проблемы. (2016-04-26, через 6 часов после попытки решения).
Эрик Уэлле
1
Понял! «Обнаружен недостаток памяти. Полный анализ решения отключен для этого решения», хотя мой полный анализ решения уже был отключен. Это так медленно, что мне нужно закрыть и перезапустить. Очень продуктивно !!! Только через час.
Эрик Уэлле
Может ли кто-нибудь объяснить, что на самом деле делает «Включить полный анализ решения» ? Он уже отключен, но я также получаю сообщение «Обнаружен недостаток памяти».
Craig W.
3

Я читал несколько статей, описывающих эту проблему как превышение виртуального адресного пространства, потому что некоторая структура внутренней памяти (возможно, List) превышает 2 ГБ. 2 ГБ - это виртуальное адресное пространство по умолчанию для 32-битных процессов, таких как VS 2015. Но вы можете настроить его максимум до 3 ГБ.

Решение, которое я нашел, отсюда :

Start▸All Programs▸Accessories▸right-click on Command Prompt▸Run as administrator

Run the following command:

bcdedit /set IncreaseUserVa 3072

Restart the computer.

Это не 100% решение, потому что в конечном итоге у вас может закончиться виртуальное адресное пространство даже с 3 ГБ ОЗУ для процесса. После настройки этого переключателя VS перестала жаловаться на память.

Огнян Димитров
источник
Спасибо, Огнян, это потенциально могло бы дать вам немного больше времени, но я не знаю обратной стороны этого. Если его нет, почему Microsoft не установила его самостоятельно? Я предпочитаю дождаться более надежного решения. Но, возможно, кому-то он понравится и попробует. В качестве примечания, похоже, что это только для 32-битной версии Windows (как написано в первом предложении) ??? У меня 64-битная Windows 7
Эрик Уэлле
1
Я предполагаю, что в 32-битной системе всего с 4 ГБ адресуемой памяти другого варианта нет. Теперь у меня есть машина с 32 ГБ ОЗУ, и нет проблем, чтобы дать процессу еще немного - ОС будет более чем достаточно для использования. Вы можете прочитать это по ссылке : «В 32-разрядных версиях Windows приложениям доступно 4 гигабайта (ГБ) виртуального адресного пространства. Виртуальное адресное пространство разделено так, что 2 ГБ доступно для приложения, а остальные 2 ГБ доступно только системе ".
Огнян Димитров
Звучит интересно! Попробую, если / когда vs2015 снова вылетит. Благодаря!
Роман
1
@OgnyanDimitrov, Windows выпустила новое обновление, в котором исправлены сбои VS2015. В результате я не пробовал это решение.
Роман
@OgnyanDimitrov, это было общее обновление Windows. Примерно с 9 по 12 мая они выпустили большое количество обновлений (около 30), и одно из них (или несколько) было исправителем. Убедитесь, что установлены все обновления Windows.
Роман
3

Уже несколько недель, когда доступно обновление 3, и никто не отвечает ...

«Visual Studio Update 3» исправляет эту проблему и решает многие другие. ОБЯЗАТЕЛЬНЫМ !!!

Я рекомендую прочитать это перед установкой обновления 3: Visual Studio 2015 Update 3 и .NET Core 1.0 теперь доступны от Джона Монтгомери.

Прямая ссылка для скачивания: обновление Visual Studio 3

Эрик Уэлле
источник
2

Мой ответ - закрыть и открыть Visual Studio.

У меня не установлен флажок «Включить полный анализ решения», и я все еще получаю сообщение Visual Studio «Обнаружен недостаток памяти. Полный анализ решения отключен для этого решения». Версия Visual Studio 2015 - 14, обновление 2. Я считаю, что мне нужно закрыть VS.

VS становится неспособным открывать задачи TFS, и я не могу проверить код, пока не закрою и снова не открою VS. К счастью, у меня есть новый твердотельный жесткий диск, поэтому закрытие / открытие VS не заставляет меня ждать так долго, как раньше. Но все же досадная неприятность.

Джо Каль
источник
2
Спасибо, но я уже этим занимаюсь. Я ищу менее неприятное решение :-)!
Эрик Уэлле
0

Некоторое время я терпел эту проблему. Я бы заметил, что использование памяти неуклонно растет при работе с файлами TypeScript, что в конечном итоге приводит к сбою. Если это может быть ваша ситуация, проверьте, есть ли у вас где-нибудь в вашем проекте rxjs. Если версия 5.0.0-beta.2, обновите до 5.0.0-beta.3 (или выше), чтобы исправить это.

Подробнее: https://github.com/Microsoft/TypeScript/issues/7344#issuecomment-198392320

gxclarke
источник
Я работаю только с WPF. Вы говорите по ссылке? Если да, я никогда не ссылался на rxjs ни в одном из своих проектов.
Эрик Уэлле
0

Хотел бы я иметь волшебную пулю. Но вот что мне помогло, а теперь всегда решает проблему. Обновление VS2015 2. Resharper 2016.1.1. Все проекты vNEXT.

  1. В Resharper -> Параметры -> Проверка кода -> Настройки. Добавьте столько папок wwwroot. Я также добавил каждую папку в wwwroot, так как она не каскадировалась. В масках файлов добавьте любую структуру * .js или * .css (например, * .min.js, * jquery.js, * angular.js, * .min.css). Этот шаг помог сократить «загрузку исходных файлов», которую выполняет resharper, когда я создаю js / css с Gulp, Grunt для публикации.

  2. Это не идеально, но когда я пишу код и не планирую тестирование, я выгружаю все проекты, которые я не использую, обычно в тестовом режиме. Похоже, это сокращает «управляемую память», которую использует resharper / vs.

  3. И наконец, что немного раздражает, я НИКОГДА не смотрю файлы в bower_components в обозревателе решений VS. Я считаю, что переход к папке напрямую и использование чего-то вроде VSCODE для просмотра JS / JSON экономит время и избавляет меня от разочарований. Это наводит меня на мысль, что хотя node_modules и bower_components «игнорируются», на самом деле они не игнорируются или это как-то связано с огромным количеством файлов в каталоге проекта.

Я жду решения на 100%, но надеюсь, что это поможет.

Rentering.com
источник
Я обновляю свой опыт. Я отключил ReSharper Tools -> Options. Установил CodeMaid. У меня по-прежнему возникает ошибка "Мало памяти". На получение ошибки потребовалось больше времени, но я не думаю, что это проблема Resharper, но я думаю, что Resharper делает это быстрее. Здесь пока нет решения, но я рад, что это не вина Resharper (как таковая).
Rentering.com