Problema de depuração lenta no Visual Studio


87

Na minha instância do Visual Studio, mesmo se eu apenas escrever uma única linha de retorno em um aplicativo de console C #, levarei um minuto depois de pressionar F5para executar o código real (quero dizer, o tempo que leva para parar na única instrução de retorno após pressionando F5- eu defino um ponto de interrupção na instrução de retorno na mainfunção). O que está errado? Existe uma lista de verificação?

Estou usando a edição VSTS do Visual Studio 2008 e depuração no Windows Server 2003 x64.


2
Só para ter certeza ... Quanta memória você tem disponível para tentar executar o código? VS é um
devorador de

1
Qual é o seu hardware? O Visual Studio consome muito disco e CPU, portanto, ter uma máquina com preço acessível deixará de ter desempenho.
William Holroyd

1
Ter> 2-3 pontos de interrupção condicionais é mal tratado pelo VS ...
Simon Buchan

Tenho memória 4G e nenhum outro processo está sendo executado ao mesmo tempo. Acabei de reiniciar minha máquina algumas vezes e o mesmo sintoma. Não me deparei com essas questões uma semana antes. Mais alguma ideia?
George2

2
Eles estão todos listados em Debug-> Windows-> Breakpoints (Ctrl-Alt-B). Mas você saberia se fizesse algum ...
Simon Buchan

Respostas:


149

Você pode precisar excluir todos os seus pontos de interrupção --- observe que você precisa clicar no botão "Excluir todos os pontos de interrupção" (ou usar Ctrl+ Shift+ F9), NÃO apenas excluí-los um por um. Se o Visual Studio alterou as configurações da solução, o último não funcionará. Você pode precisar adicionar um ponto de interrupção primeiro, para que isso funcione (inteligente, hein?).

Se acontecer o pior, pode ser necessário excluir seu .suoarquivo e deixar o Visual Studio iniciar um novo do zero. Observe que você perderá suas definições de configuração de solução pessoal, no entanto (apenas para esta solução, não para outras). No entanto, convém mover / renomear o arquivo temporariamente até determinar se esse é ou não o problema; dessa forma, você sempre pode movê-lo para trás. Eu vi alguns recursos online recomendando excluir (mover / renomear) o .ncbarquivo também.


2
Olá, zweiterlinde. Acho que o gargalo deve lidar com a rede. Quando eu desconecto o cabo de rede, o desempenho é muito bom na depuração. Você tem alguma ideia sobre o porquê? e como avaliar melhor?
George2

deletar um arquivo .suo de 14Mb funcionou para mim :) agora são insignificantes 150Kb. ocorreu um problema após a atualização do VS2010 Pro para o Ultimate
GreyCloud

+1. Muito obrigado, funcionou). Meu VS 2010 levou 2 minutos para iniciar um projeto em uma estação de trabalho. Hã. Que bug ...
Arsen Zahray

Eu também excluí o arquivo .suo, mas fiz isso enquanto o Visual Studio estava em execução. Quando reiniciei o Visual Studio, ele conectou o depurador bem rápido novamente e parece que manteve a maioria das minhas configurações.
stiduck

+1 Muito obrigado, de verdade. Portanto, no meu caso, excluir o arquivo suo funcionou perfeitamente para mim.
Dean Seo

26

Eu já vi isso antes. Tente excluir todos os seus pontos de interrupção e, em seguida, defina os que deseja. Hit F5. Está mais rápido agora?

Acabei de notar que você mencionou a configuração do recurso de depuração de código-fonte .NET. Tente desabilitar isso. A conectividade de rede com o servidor de origem da Microsoft pode ser lenta. Desative também qualquer conectividade do servidor de símbolo no menu FerramentasOpçõesDepuraçãoSímbolos .

Experimente também desabilitar "Habilitar avaliação de propriedade e outras chamadas de função implícitas" no menu FerramentasOpçõesDepuraçãoGeral .


1
Na minha janela de pontos de interrupção, há apenas um na instrução de retorno da minha função principal. Alguma outra lista de verificação?
George2

1
Adicionou mais coisas para tentar. Espero que ajude.
m-sharp

Eu removi o único ponto de interrupção na instrução de retorno da minha função principal, mas ainda muito lento para iniciar o aplicativo e parar, leva cerca de 1 minuto. Mais alguma ideia?
George2

Aqui está outra ideia para isolar seu problema. Tente desconectar o cabo de rede, reinicie o Visual Studio e pressione F5 em seu projeto. Isso muda alguma coisa?
m-sharp

1
Tente desabilitar isso, sua conectividade de rede com o servidor de origem da Microsoft pode ficar lenta. Desative também qualquer conectividade de servidor de símbolo em Ferramentas> Opções> Depuração> Símbolos - Isso funcionou para mim
Yousuf Azad

19

Ou remova o arquivo .suo, que pode ser encontrado ao lado do arquivo de solução (.sln). Isso resolveu um problema que tive com sessões de depuração que demoravam muito para iniciar e parar.


1 para salvar minha sanidade (e me salvar uma reinstalação do VS2010). Obrigado!
Chuck Dee

Esta é a solução referenciada no MSDN também: social.msdn.microsoft.com/Forums/vstudio/en-US/…
ecoe

A confirmação disso também se aplica às versões anteriores, 2003.NET e 2005. Um aplicativo tinha alguns pontos de interrupção e estava funcionando bem. Adicionados mais alguns pontos de interrupção ... 100% de uso da CPU e tremulação terrível no VS durante a depuração. VS fechado, excluído .suo, reaberto e a depuração é rápida novamente.
AlainD

Esta é a solução que acho que sempre funciona sempre que o VS fica muito lento em termos de depuração
Graviton

Ou renomeie o arquivo .suo antes de excluí-lo, para que seja possível voltar ao estado anterior.
Peter Mortensen

12

Eu tive esse problema. Depois de tentar todos os conselhos listados e remover todas as extensões do Visual Studio, finalmente descobrimos que de alguma forma o IntelliTrace estava habilitado. Desativar isso consertou tudo.

Como: habilitar e desabilitar o IntelliTrace


Resolve também o problema se você tiver um projeto que usa SharpDX - funcionou para mim e agora o desempenho gráfico voltou ao normal.
komorra,

No caso especial de usar SharpDX e Debug-Build, tive o mesmo efeito, mas era apenas a depuração DX habilitada. Se não for necessário, procure por "DeviceCreationFlags.Debug" e desative-o
thewhiteambit

No VS2015, desmarquei 'Ativar Intellitrace' e cliquei em OK. Mais tarde descobriu que você tem que mudar de 'Intellitrace e informações de chamada' para 'Somente eventos do Intelllitrace'; se não o fizer, 'Ativar Intellitrace' PERMANECE VERIFICADO!
smirkingman

Resolvido os problemas! (não acredite no comentário da MS: "Este tópico se aplica apenas ao Visual Studio 2010 Ultimate."). Eu tenho a edição gratuita de 2017 e ela acelera drasticamente a depuração!
marsh-wiggle

IntelliTrace no VS 2017 e superior é um recurso apenas Enterprise, então isso não corrigiu meu problema (já que eu tinha apenas a edição VS 2017 Pro).
FoxDeploy

6

Você tem muitos pontos de interrupção definidos? Isso pode realmente retardar o tempo de inicialização. Sempre que um novo módulo é carregado no espaço de endereço do processo, todos eles precisam ser verificados para ver se são válidos.


Eu tenho apenas um ponto de interrupção no meu código de modo de usuário. Mas me lembrei de uma semana antes de usar o recurso de depuração de código-fonte no Visual Studio para definir algum ponto de interrupção no código interno .Net. Há alguma maneira de verificar todos os pontos de interrupção, incluindo os internos .Net que defini?
George2

Nenhuma, mas ainda lenta, alguma ideia adicional?
George2

não realmente, parece que seu hardware deve estar ok e todos os outros itens que eu tentei parecem ter sido assinalados por outros comentaristas. Neste ponto, provavelmente tentaria reinstalar o Visual Studio - talvez algo esteja bagunçado com a instalação
1800 INFORMAÇÕES

Eu reinstalei em outro diretório, mas ainda tenho o mesmo sintoma. Mais alguma ideia?
George2

6

Vá ao menu FerramentasOpçõesDepuradorSímbolos e verifique se você tem conjunto de símbolos públicos ou caminhos de rede UNC definidos. Verifique também o menu Ferramentas * → OpçõesDepuradorGeral para ver se você tem o servidor de origem definido.

Tudo isso pode afetar a depuração com base na velocidade lenta da rede ou em servidores indisponíveis. O tempo de espera de 5 minutos corresponde ao tempo limite da rede.

Se nada nas opções estiver definido, verifique se você tem a variável de ambiente _NT_SYMBOL_PATH definida.


Obrigado, foi isso para mim. Ocasionalmente, eu carregaria 1 ou 2 arquivos de símbolo na janela Módulos, apontando para símbolos de nossas compilações por meio de caminhos UNC ou, com menos frequência, apontando para máquinas virtuais que não existem mais. Não percebi que salvou todos esses caminhos nas configurações de Depurador / Símbolos.
brian

6

Meu colega tinha um Visual Studio respondendo muito lentamente e, literalmente, levou minutos para executar uma etapa durante a depuração.

A causa raiz acabou sendo um programa antivírus (Threatfire) que enlouqueceu enquanto o Visual Studio estava em execução. Matar seu processo consertou tudo imediatamente.


Tive uma experiência horrível de depuração da web no trabalho até desabilitar o antivírus ESET. Depois de atingir F5, meu tempo de resposta passou de 2-3 minutos para 2-3 segundos.
James Hulse de

1
Suspender o ThreatFire por um tempo também me ajudou muito - obrigado! (Desligar temporariamente o Avast! Também ajudou um pouco, mas não muito.)
Jon Coombs

Malwarebytes foi a causa do meu problema. Sair corrigiu a lentidão.
Ben Rubin

Também estou usando o Malwarebytes ... Depois de encerrá-lo, a depuração do VisualStudio é muito mais rápida. A inicialização de depuração era de 15 segundos antes, agora é de 2 segundos) .. Obrigado!
BlueDev

5

No meu caso, alterar o símbolo de depuração "Carregar automaticamente o símbolo para" opção de "Todos os módulos" para "Apenas os módulos especificados" resolveu o problema. Você pode alterar esta opção no menu FerramentasOpçõesDepurarSímbolos .


3

Uma causa diferente mais ... Como encontrar o problema

Para mim foi a opção ShowOtherThreadIpMarkers . Um valor de 1 torna o Visual Studio (2010) insuportavelmente lento (3-5 segundos para cada etapa de depuração. Com um valor de 0, ele é rápido novamente.

O que é essa opção? Eu não faço ideia. Não consegui encontrar por meio da interface do usuário do Visual Studio. Desmarquei todas as opções de depuração possíveis e nada funcionou.

Então, fui para Importar / Exportar configurações e carreguei minhas configurações antigas que salvei anteriormente voltando no tempo até que o Visual Studio fosse rápido novamente, em seguida, comparei os arquivos vssettings ..., etc., etc.

Eu gostaria de comentar que se você carregar as configurações enquanto estiver no modo de depuração parado em um ponto de interrupção, elas se tornarão efetivas imediatamente. Você não precisa parar o depurador e reiniciar.


+1 Obrigado, este era o meu problema também com um aplicativo da web C # no VS2015. Desativei a opção "Mostrar Threads na Fonte" na barra de ferramentas durante a depuração e o problema foi embora. Se a opção não estiver disponível na barra de ferramentas, ela pode ser encontrada clicando com o botão direito em qualquer tópico dentro da janela Threads.
Groo

2

Do blog do ScottGu com link de Travis: "Um outro problema de desempenho que ouvi recentemente é um problema que algumas pessoas relataram ter encontrado com o complemento da Barra de Ferramentas Google. Por algum motivo, isso às vezes pode causar longos atrasos ao anexar o Visual Depurador do Studio para o navegador. Se houver longos atrasos no carregamento de seu aplicativo da web e a Barra de Ferramentas Google (ou outras barras de ferramentas) estiver instalada, você pode tentar desinstalá-las para ver se essa é a causa do problema. "


Você tem a Barra de Ferramentas Google instalada? Até mesmo dizer não é útil para futuros leitores desta questão.
Cat Zimmermann

Eu abri o Internet Explorer e nenhuma barra de ferramentas foi exibida. Isso significa que não tenho nenhuma barra de ferramentas instalada e não afetarei o Visual Studio? :-)
George2

2
Uau. Achei que não fazia sentido, mas acabei de desinstalar e minha máquina voltou ao modo utilizável
orellabac

1
Outro plugin culpado é o LastPass. Isso é apenas um problema com o IE ou um plug-in em qualquer navegador pode afetar as coisas?
Denise Skidmore

1
@DeniseSkidmore Você é incrível, gostaria de poder votar a favor mais de uma vez. Todas essas outras soluções e nada estava ajudando ... então eu li seu comentário, desabilitei o add-in LastPass IE e de repente ele está rápido novamente. Confirmei que esse era o problema reativando o add-in e ele desacelerou novamente. OBRIGADO!!!!
Lews Therin

2

A execução sob o depurador para mim era cerca de 10 vezes mais lenta do que a execução sem depuração.

Depois de tentar todas as soluções sugeridas aqui, analisei todas as configurações do depurador e as habilitei / desabilitei para ver se fazia diferença.

Para mim, descobriu-se que desativar Suprimir otimização JIT na carga do módulo nas configurações de depuração melhorou muito as coisas.


1

Certifique-se de não ter nenhum mapeamento de rede obsoleto para servidores que não existem mais (o tempo limite de rede irá matá-lo). Ou use algo como Process Monitor para ver se uma rede (ou outro erro de arquivo) parece estar bloqueando por um longo tempo.


Process Monitor é uma ferramenta legal! :-) Mas qual opção no Process Monitor poderia ser usada para ver "se uma rede (ou outro erro de arquivo) parece estar bloqueando por um longo tempo"?
George2

Eu procuraria coisas como erros ao tentar abrir um arquivo ou quanto tempo as operações demoram (não se esqueça de que existem itens de dados que você pode não ver, como 'Duração' que você pode selecionar em Opções / Selecionar Colunas ...) . Use os filtros e destaques a seu favor.
Michael Burr

Olá Michael Burr. Em Process Monitor, você quer dizer monitorar o próprio processo do VSTS ou monitorar todos os processos na máquina?
George2

Eu definitivamente começaria apenas com VSTS (devenv.exe) ou você será inundado com informações que quase certamente não serão úteis.
Michael Burr

1
Você vai querer usar "Process Monitor" e não "Process Explorer". Consulte technet.microsoft.com/en-us/sysinternals/bb896645.aspx . Os 2 utilitários têm funções diferentes. Procmon rastreará operações de arquivo e registro. Procexp é um utilitário útil, mas não fornece esse tipo de rastreamento.
Michael Burr

1

Você está usando um symbolsServer para baixar símbolos para arquivos DLL do Windows?

Em caso afirmativo, desative-o, pois pode levar algum tempo, mas eu não esperava que isso causasse longos atrasos em um aplicativo de console básico.

Menu FerramentasOpçõesDepuraçãoSímbolos .


O conteúdo está vazio em Ferramentas> Opções> Depuração> Símbolos. Mais alguma ideia?
George2

1

Eu sei que este é um assunto antigo, mas vale a pena ...

Descobri que, se houver uma janela separada do Internet Explorer aberta por muito tempo, a depuração pode demorar até um minuto. Feche todas as janelas do Internet Explorer e a depuração começa imediatamente.


1

No meu caso, a Barra de Ferramentas Google estava retardando minha depuração.

gplus_notifications_gadget.html continuou sobrecarregando o depurador. Eu queria manter a Barra de Ferramentas Google porque a uso regularmente, então, apenas desativei o botão de notificação do G + (o botão pequeno ao lado do botão de perfil). Ele está feliz agora.


1

Tive o mesmo problema no Visual Studio 2010, com a digitação do código terrivelmente lenta (entre 3 a 10 segundos). No entanto, nenhuma das modificações nas configurações acima funcionou.

Eu finalmente encontrei a solução definitiva, que funcionaria em todos os problemas de postagem acima: redefinir todas as suas configurações, conforme descrito aqui (essencialmente menu FerramentasImportar e exportar configurações , Redefinir todas as configurações , salvando as configurações existentes em um arquivo (para reverter )).

Você pode querer primeiro salvar uma parte específica de suas configurações. Por exemplo, salvei primeiro meu tema de cores (semelhante a solarização) e depois o restaurei após a redefinição global.


1

Para mim, a configuração que matou o desempenho (Windows 8 até travou, exceto para o movimento do mouse) foi desmarcar "Interromper todos os processos quando um processo é interrompido" no menu OpçõesDepuraçãoGeral .


1

Apenas mais uma causa de uma experiência de depuração lenta do Visual Studio ...

Há muito tempo eu habilitei FusionLog para ver o que estava causando um problema de ligação de assembly.

Certifique-se de desativá-lo após usá-lo. Por quê? Porque ele grava muitos dados de registro no disco enquanto está habilitado.

Esta é a FusionLogchave no Registro do Windows ( regedit.exe):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Altere os valores ForceLog, LogImmersivee LogResourseBindingsde 1 (habilitado) para 0 (desabilitado).


Era isso que estava acontecendo comigo. Você também pode desativar o Fusion Log por meio de sua interface: hanselman.com/blog/…
Denise Skidmore

Você pode ver se este é o seu problema ao executar o Process Monitor, você verá todos os acessos ao arquivo Fusion Log.
Denise Skidmore

0

Eu também tive esse problema, mas não tinha nada a ver com pontos de interrupção no meu caso. Foram os atalhos de código que adicionei na janela de tarefas:

http://www.customsoftwareframeworks.com/blog/longwaittimetoinsertoraddalineoftextbuginvisualstudio--tasklistwindow--onlywhenaddingandremovelines

Tenho certeza de que existem outras maneiras de ver um problema como esse, mas há um bug em algum lugar que causou esse problema para mim ... excluir todas as minhas opções teria corrigido isso, mas isso é algo que eu não queria Faz. Então, eu depurei e escrevi sobre isso no meu blog ... o seu problema parece o meu.


O link está quebrado: "O recurso que você está procurando foi removido, teve seu nome alterado ou está temporariamente indisponível."
Peter Mortensen

0

Algo que funcionou para mim é garantir que não haja pontos de interrupção condicionais. Além disso, tive êxito ao corrigir a depuração lenta simplesmente reiniciando o Visual Studio e abrindo apenas uma instância do Visual Studio por vez.


0

Eu tive um problema semelhante e nenhuma das outras orientações pareceu ajudar. Eu havia reiniciado sem sucesso. Eu havia removido todos os pontos de interrupção, excluído o arquivo .suo, verificado se os símbolos não estavam sendo carregados de fontes externas e verificado se não existiam caminhos no aplicativo que não estavam disponíveis.

Então, pensei em limpar a solução. Percebi na janela de saída que C # IntelliSense relatou um problema durante a limpeza:

Houve um problema ao ler os metadados de '{B0C3592F-F0D1-4B79-BE20-3AD610B07C23}' ('O sistema não pode encontrar o arquivo especificado.'). O IntelliSense pode não funcionar corretamente até que a solução seja recarregada.

Nesse caso, assim que você realmente descobrir a mensagem de erro, ela informará exatamente como resolvê-la. (Bom trabalho no texto do erro, mau trabalho na descoberta!) Descarreguei os projetos da solução e recarreguei-os. Consegui então executar a solução limpa com sucesso . Funcionou, e o depurador também.


0

Fechar a janela "Autos" melhorou a depuração para mim no Visual Studio 2008 para uma grande solução C ++ nativa.

Esconder não vai funcionar. Precisa ser fechado.


0

Eu experimentei a mesma lentidão e desconectar da rede corrigiu o problema para mim como alguns outros comentários e respostas declararam (mas é claro que essa não é uma solução ideal).

Para o meu caso, essa mudança simples corrigiu minha solução: nas propriedades do projeto na guia de depuração, desativei "Habilitar o processo de hospedagem do Visual Studio" (estou executando o Visual Studio 2010).


-9

Obtenha mais memória e um HD mais rápido. Mais detalhes estão aqui .


1
Não acho que seja um problema de H / W, já que meu hardware é 4G de memória + 2 CPU (2,33 G), isso é o suficiente? BTW: Eu não sofri com isso uma semana antes, então acho que deve haver alguns problemas de configuração?
George2

2
1 Conselho útil, não acredito que as pessoas votem nisso. Apesar de excluir o arquivo .suo ajudar 10 vezes mais.
Andomar

1
O OP nem disse quais são suas especificações. Se você estivesse me aconselhando, você estaria me aconselhando a obter mais do que 32 Gb Ram e mais rápido do que meu já rápido estado sólido.
Valamas
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.