Что такое стандартный сборщик Visual Studio и почему он использует 10 ГБ ОЗУ?
Надеюсь, это правильный сайт обмена стеками, чтобы публиковать на нем... Не думаю, что это был вопрос программирования для SO. Во всяком случае, я использую Visual Studio 2015 и получил уведомление от Windows о закрытии VS2015, потому что у него мало памяти. У меня 24 ГБ ОЗУ, и я только что перезагрузился вчера, так что я думаю, что-то здесь далеко. Я иногда использую интерактивное окно C# и интерактивное окно Python 2.7, но они не использовались во время этого сообщения.
Примечание. Пока я писал это, я только что получил сообщение "Неизвестный сбой" от devenv.exe (процесс vs2015). Но служба Standard Collector по-прежнему работает с использованием 10,7 ГБ.
Кто-нибудь знает, что такое стандартный коллектор? И что может привести к резкому увеличению использования ОЗУ?
Примечание: снова, когда я пишу, я просто заметил, что служба Standard Collector остановлена в моем диспетчере задач, и у меня вернулась вся ОЗУ.
Обновление: Похоже, что это может быть ошибкой, которую команда VS пыталась исправить в обновлении 1. У меня определенно установлено обновление 1, но, возможно, я должен попытаться воспроизвести некоторый пример кода и отправить его команде VS. Сбой экземпляра devenv в настоящее время также не отлаживается. (Хотя есть другой экземпляр, где он отлаживается, как вы можете видеть по расширению.vshost.exe в диспетчере задач)
Этот экземпляр devenv не аварийно завершился, и теперь он все еще работает в отладчике без проблем.
2 ответа
Процесс 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 устранила некоторые коренные причины проблемы, но теперь появляются и другие нефиксированные причины.
Отключите службу, и она больше не будет поглощать вашу память.
Сервис-> Параметры-> Отладка-> Общие, отключите "Включить средства диагностики при отладке".