O que é o processo do Visual Studio Standard Collector e por que ele usa 10 GB de RAM?

21

Espero que este seja o site de troca de pilhas certo para postar ... Não parecia uma questão de programação para SO. De qualquer forma, estou executando o Visual Studio 2015 e recebi uma notificação do Windows para fechar o VS2015 porque está com pouca memória. Eu tenho 24 GB de RAM e apenas reiniciei ontem, então acho que algo está muito longe daqui. Às vezes, uso a janela interativa C # e a janela interativa python 2.7, mas elas não estavam em uso no momento desta mensagem.

Nota: Enquanto escrevo isso, recebi uma mensagem "Unknown hard crash" do devenv.exe (processo vs2015). Mas o serviço Standard Collector ainda está sendo executado usando 10,7 GB.

Alguém sabe o que é o Standard Collector? E o que pode causar um aumento no uso da RAM?

Nota: Enquanto escrevo, notei que o Serviço de Coletor Padrão parou no meu gerenciador de tarefas e tenho toda a minha RAM de volta.

Grande uso de RAM por um processo do Visual Studio "Standard Collector"

Atualização: Parece que isso pode ser um bug que a equipe do VS tentou corrigir na atualização 1. Definitivamente, tenho a atualização 1 instalada, mas talvez eu deva tentar reproduzir algum código de exemplo e enviá-lo para a equipe do VS. A instância do devenv que travou também não estava atualmente depurando. (Embora haja outra instância em que está depurando, como você pode ver pela extensão .vshost.exe no gerenciador de tarefas)

Essa instância do devenv não travou e ainda está sendo executada no depurador agora sem problemas.

insira a descrição da imagem aqui

C. Tewalt
fonte
Ele lida com ferramentas de diagnóstico. . Você está ciente de que o Chrome existe como um processo de 64 bits, certo?
Ramhound 23/03
11
este é um bug conhecido e tem uma correção com uma verificação de atualização aqui para informações: connect.microsoft.com/VisualStudio/feedback/details/1630071/...
arana
@arana, eu estou correndo atualização 1, que "deve" ter a correção ...
C. Tewalt
11
O @Ramhound Chrome não é realmente relevante para esta pergunta. Ou você está apenas compartilhando um petisco útil de informações?
C. Tewalt 23/03/16

Respostas:

16

O processo do coletor parece estar relacionado à instrumentação / diagnóstico de código em execução no modo de depuração, no Visual Studio 2015. A Microsoft reconheceu que há um problema com o uso ilimitado de memória desse processo e diz: "Pesquisamos a causa raiz e temos fez uma correção que será fornecida na atualização 1 do VS2015 "

Portanto, certifique-se de obter a atualização mais recente do Visual Studio 2015. Entretanto, para mitigação:

"Enquanto isso, se você perceber que o processo consome muita memória, há duas maneiras de recuperar. O mais simples é reiniciar a máquina. Isso fará com que tudo volte a um estado novo. A outra coisa que você pode fazer para aliviar o consumo de memória é para interromper o Serviço Coletor Padrão do Visual Studio usando a interface do usuário do Service Manager. O nome do serviço é "VSStandardCollectorService140". Ele pode ser interrompido com segurança quando você não estiver depurando com o Visual Studio. Se você interromper o serviço durante a depuração (mesmo parado em um ponto de interrupção) ), a janela Ferramentas de diagnóstico exibirá uma mensagem de erro depois que você retomar o processo de destino de depuração ".

Veja este link, de onde as citações acima são originárias: https://connect.microsoft.com/VisualStudio/feedback/details/1630071/visual-studio-standard-collector-unbounded-memory-usage

Este link também tem um exemplo de código de alguém que experimentou isso em um aplicativo de console. Pode valer a pena executar esse código de exemplo para ver se ele desencadeia o problema no seu sistema. A pessoa que relatou o problema também indicou que ocorreu de forma intermitente, mas a execução do código no modo de depuração do Visual Studio parecia ser o único thread comum.

Possivelmente a Microsoft corrigiu algumas causas principais do problema, mas ainda existem outras causas não corrigidas que estão surgindo.

Desenvolvedor63 - GoFund Monica
fonte
11
Uma maneira simples (Windows 7 / Windows 10) de abrir a GUI de serviços é Iniciar / Executar, digite "services.msc" e pressione Enter. Na lista de serviços na minha máquina com Windows 7, o nome que acredito ser o mencionado é mostrado como "Serviço de Coletor Visual Studio Standard".
Developer63 - GoFund Monica
Interessante, embora eu tenha a Atualização 1 instalada -> por isso eu uso a janela interativa c # (disponível apenas na Atualização 1). Interessante que o código de exemplo do seu link reproduzido pelo cara use Tarefas. Meu aplicativo também faz bom uso de tarefas e código assíncrono.
C. Tewalt 23/03
@matrixugly, como eu entendo o problema, o Serviço de Coletor está basicamente em execução o tempo todo quando o VS2015 está em execução, coletando informações sobre instrumentação / diagnóstico do aplicativo. Portanto, o que você estava fazendo no momento em que o Windows emitiu o alerta de pouca memória pode ou não ter relação com o problema. Poderia ter sido algo muito anterior, em que o processo do Serviço de Coletor falhou em reconhecê-lo, necessário para começar a limpar os dados antigos da instrumentação, gradualmente encheu a memória e a mensagem apareceu horas mais tarde durante uma atividade não relacionada.
Developer63 - GoFund Monica
7
Ainda existe na atualização 3 RC. :(
SayusiAndo
11
Isso ainda é um problema para o VS2017? Em caso afirmativo, quais são as consequências de desativar este serviço?
rola
2

Desative o serviço e ele não recuperará sua memória.

Ferramentas-> Opções-> Depuração-> Geral, desative "Ativar Ferramentas de Diagnóstico durante a depuração".

Sumit Joshi
fonte
2
Você também deve mencionar que não terá ferramentas de diagnóstico que fazem parte do pacote de depuração que muitas pessoas usam.
rola
11
Pessoalmente, como desenvolvedor, sempre desabilitei as ferramentas de diagnóstico porque senti que a minha máquina ficou muito mais lenta desde a primeira vez que a vi e só a habilito quando realmente tenho um problema de desempenho que preciso diagnosticar (o que é bastante raro) e, ainda assim, uma sessão de criação de perfil geralmente me fornece muito mais informações. Estou bastante curioso para saber para que as pessoas o usariam regularmente.
Eduardo Wada