Что такое стандартный сборщик Visual Studio и почему он использует 10 ГБ ОЗУ?


21

Надеюсь, это правильный сайт обмена стеками, чтобы публиковать на нем ... Не думаю, что это был вопрос программирования для SO. Во всяком случае, я использую Visual Studio 2015 и получил уведомление от Windows о закрытии VS2015, потому что у него мало памяти. У меня 24 ГБ ОЗУ, и я только что перезагрузился вчера, так что я думаю, что-то здесь далеко. Я иногда использую интерактивное окно C # и интерактивное окно Python 2.7, но они не использовались во время этого сообщения.

Примечание. Пока я писал это, я только что получил сообщение «Неизвестный сбой» от devenv.exe (процесс vs2015). Но служба Standard Collector по-прежнему работает с использованием 10,7 ГБ.

Кто-нибудь знает, что такое стандартный коллектор? И что может привести к резкому увеличению использования ОЗУ?

Примечание: снова, когда я пишу, я просто заметил, что служба Standard Collector остановлена ​​в моем диспетчере задач, и у меня вернулась вся ОЗУ.

Большое использование ОЗУ процессом Visual Studio "Standard Collector"

Обновление: Похоже, что это может быть ошибкой, которую команда VS пыталась исправить в обновлении 1. У меня определенно установлено обновление 1, но, возможно, я должен попытаться воспроизвести некоторый пример кода и отправить его команде VS. Сбой экземпляра devenv в настоящее время также не отлаживается. (Хотя есть другой экземпляр, где он отлаживается, как вы можете видеть по расширению .vshost.exe в диспетчере задач)

Этот экземпляр devenv не аварийно завершился, и теперь он все еще работает в отладчике без проблем.

введите описание изображения здесь


Он имеет дело с диагностическими инструментами. , Вы знаете, что Chrome существует как 64-битный процесс, верно?
Ramhound

1
это известная ошибка, и в ней есть исправление с проверкой обновлений здесь для получения информации: connect.microsoft.com/VisualStudio/feedback/details/1630071/…
arana

@arana, я запускаю обновление 1, которое "должно" иметь исправление ...
C. Tewalt

1
@Ramhound Chrome на самом деле не имеет отношения к этому вопросу. Или вы просто любезно делитесь полезной информацией?
С. Тевальт

Ответы:


16

Процесс Collector, по-видимому, связан с инструментарием / диагностикой кода, работающего в режиме отладки, в Visual Studio 2015. Microsoft признала, что существует проблема с неограниченным использованием памяти этим процессом, и говорит: «Мы исследовали первопричину и имеем сделал исправление, которое будет предоставлено в VS2015 Update 1 »

Поэтому убедитесь, что вы получили последнее обновление Visual Studio 2015. Для смягчения тем временем:

«Между тем, если вы заметили, что процесс потребляет слишком много памяти, у вас есть два способа восстановления. Самый простой - просто перезагрузить компьютер. Это вернет все в новое состояние. Другая вещь, которую вы можете сделать, чтобы уменьшить потребление памяти, это остановить службу Visual Studio Standard Collector с помощью пользовательского интерфейса диспетчера служб. Имя службы - «VSStandardCollectorService140». Его можно безопасно остановить, если вы не выполняете отладку в Visual Studio. Если вы останавливаете службу во время отладки (даже останавливаетесь на точке останова) ) затем окно «Средства диагностики» отобразит сообщение об ошибке после возобновления целевого процесса отладки. "

Посмотрите на эту ссылку, откуда взяты приведенные выше цитаты: https://connect.microsoft.com/VisualStudio/feedback/details/1630071/visual-studio-standard-collector-unbounded-memory-usage

Эта ссылка также содержит пример кода того, кто испытал это из консольного приложения. Может быть стоит запустить этот пример кода, чтобы посмотреть, не вызывает ли он проблему в вашей системе. Человек, который сообщил о проблеме, также указал, что она возникла периодически, но запуск кода в режиме отладки Visual Studio, по-видимому, был одним из общих потоков.

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


1
Один простой способ (Windows 7 / Windows 10) для вызова графического интерфейса служб - это запустить / запустить, ввести «services.msc» и нажать Enter. В списке служб на моем компьютере с Windows 7 упомянутое имя, которое я считаю, обозначается как «Служба Visual Studio Standard Collector».
Разработчик63 - GoFund Monica

Интересно, хотя у меня установлено обновление 1 -> поэтому я использую интерактивное окно c # (доступно только в обновлении 1). Интересно, что пример кода из вашей ссылки, который воспроизвел парень, использует Задачи. Мое приложение справедливо использует задачи и асинхронный код.
C. Tewalt

@matrixugly, насколько я понимаю проблему, служба Collector в основном работает все время, когда VS2015 работает, собирая информацию об инструментах / диагностике приложения. Поэтому то, что вы делали в то время, когда Windows выдала предупреждение о нехватке памяти, может иметь или не иметь никакого отношения к проблеме. Это могло произойти намного раньше, когда процесс Служба сборщика не смог распознать, что он должен был начать очистку старых данных измерительных приборов, постепенно заполняя память, и сообщение появилось несколько часов спустя во время несвязанного действия.
Developer63 - GoFund Monica

7
По-прежнему существует в обновлении 3 RC. :(
СаюсиАндо

1
Это все еще проблема для VS2017? Если да, каковы последствия отключения этого сервиса?
катит

2

Отключите службу, и она больше не будет поглощать вашу память.

Сервис-> Параметры-> Отладка-> Общие, отключите «Включить средства диагностики при отладке».


2
Вы также должны упомянуть, что у вас не будет диагностических инструментов, которые являются частью пакета отладки, который используют многие люди.
катится

1
Лично я, как разработчик, всегда отключал диагностические инструменты, потому что чувствовал, что моя машина стала намного медленнее с первого раза, и включал его только тогда, когда у меня действительно есть проблема с производительностью, которую мне нужно диагностировать (что довольно редко), и все же сеанс профилирования обычно дает мне гораздо больше информации. Мне очень любопытно узнать, для чего люди будут использовать его на регулярной основе.
Эдуардо Вада
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.