Depuração / carregamento do Visual Studio muito lento

505

Estou no limite. O Visual Studio normalmente é muito lento para depurar ou simplesmente carregar ("iniciar sem depurar") meus sites do ASP.NET MVC. Nem sempre: no começo, os projetos carregam bem e rápido, mas depois que carregam devagar, sempre carregam devagar depois disso. Eu poderia estar esperando 1-2 minutos ou mais.

Minha configuração:

Atualmente, estou usando o Visual Studio 2012 Express , mas também tive o mesmo problema no Visual Studio 2010 Express. Minha solução é armazenada em uma unidade de rede; especificamente, são meus documentos redirecionados para uma unidade de rede, se isso importa. (Não deveria. Há momentos em que meu site carrega muito rápido nessa configuração.)

Normalmente, carrego no Internet Explorer 9, mas o mesmo problema ocorre no Firefox.

Isso pode acontecer em qualquer projeto do ASP.NET MVC em que trabalho e parece girar em torno de ter DisplayTemplates, o que todos os meus projetos do ASP.NET MVC fazem. E é tudo C # e Razor, se isso importava.

Sintomas:

O sistema carregará meus símbolos centenas de vezes. Basicamente, o seguinte, mas existem pelo menos 300 linhas desse tipo, cada uma com arquivos DLL sempre um pouco diferentes para os mesmos CSHTMLs:

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.xighmhow.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.cv5hktkf.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.1o77hs8i.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.jja-77mw.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.l_e9ev_s.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.b4n59gom.dll', Symbols loaded.

Acima, eu tenho três DisplayTemplates: "Contato", "Localização" e "StatusCode". Parece que o IIS está carregando símbolos duas vezes para cada vez que o modelo de exibição é chamado. Portanto, se estou exibindo uma tabela de 100 entradas que chama todos esses três modelos de exibição, são 600 símbolos separados carregados.

Esta também não é uma operação rápida. Examinando os arquivos de log que o IIS gera, são necessários cerca de 200 ms para cada símbolo carregar. Assim, atrasos super longos.

O que eu tentei:

  • Versão de depuração ou lançamento, não importa.
  • Colocar o meu projeto em uma implementação completa do IIS em um servidor Web é executado muito rápido, sem problemas.
  • Cassini, IIS Express 7.5 e IIS Express 8.0 têm o problema.
  • Excluir todos os pontos de interrupção não faz nada.
  • Solução limpa ou excluir o .suo também não faz nada.
  • Se eu reparar o IIS Express, excluir a My Docs\IISExpresspasta ou reparar / reinstalar o Visual Studio → o problema PODE desaparecer, mas apenas por um tempo, antes que ele volte.

Qualquer conselho é apreciado.

Para responder a mais perguntas, sim, minha máquina definitivamente tem a potência. O fato irritante é que o mesmo projeto, com NADA alterado, pode carregar muito rapidamente às vezes, normalmente após eu reparar o IIS Express e excluir a My Docs\IISExpresspasta. Eventualmente, "algo" acontece e é necessário apenas 2 minutos para carregar novamente. O que eu estou trabalhando não é um projeto complicado. Não há bibliotecas ou dependências externas, e meu VS.NET não tem complementos.

É importante notar que esta máquina possui o Symantec Endpoint Protection, que tem um histórico de causar estragos. Mas desativá-lo completamente (é bom ser um administrador) não resolveu o problema.

Eu tenho uma teoria neste momento. Estou pensando que isso é tudo porque estou trabalhando em uma pasta redirecionada de um compartilhamento de rede. Enquanto o depurador passava por centenas de linhas de "símbolos carregados", parei para ver o que estava fazendo. Estava no meu código, carregando o DisplayTemplate que eu tinha. Entrar no modelo gera isso:

Step into: Stepping over non-user code 'System.Threading.WaitHandle.InternalWaitOne'
Step into: Stepping over non-user code 'System.Threading.WaitHandle.WaitOne'
Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated'
Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCapture'
Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch'
Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch'
Step into: Stepping over non-user code 'System.Web.Compilation.AssemblyBuilder.Compile'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.bciuyg14.dll', Symbols loaded.
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.CompileWebFile'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultInternal'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.FileExists'
Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName'
Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.FindPartialView'
Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.Find'
Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.FindPartialView'
Step into: Stepping over non-user code 'System.Web.Mvc.Html.TemplateHelpers.ActionCacheViewItem.Execute'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.kwj3uqan.dll', Symbols loaded.
Step into: Stepping over non-user code 'System.RuntimeType.CreateInstanceSlow'
Step into: Stepping over non-user code 'System.Web.Mvc.DependencyResolver.DefaultDependencyResolver.GetService'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerViewEngine.DefaultViewPageActivator.Create'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerCompiledView.Render'

Parece que o Visual Studio está recompilando meu modelo de exibição toda vez que é chamado, o que é novamente, centenas de vezes. Minha teoria é que o Visual Studio compila o arquivo, o salva no compartilhamento de rede, o compartilhamento de rede, de alguma forma, imprime uma nova vez, e o Visual Studio pensa que o arquivo foi alterado e, portanto, o Visual Studio o recompila novamente. Apenas uma teoria; Eu realmente não tenho ideia.

Por um lado, aparentemente eu tenho arquivos offline (este é um computador desktop em um escritório; eu não poderia me importar menos). Vou desativar, reiniciar e tentar novamente amanhã.

Além disso, mover o meu projeto, como está, para o C: local, corrige-o. Carrega muito rapidamente. Mas isso não é ideal em um ambiente de trabalho. Perco as versões anteriores, meu código não é copiado, a menos que eu o copie manualmente e não seja mais compartilhado com ninguém.

Eu posso me contentar em copiá-lo de C para o compartilhamento de rede, se for o caso. É muito mais irritante esperar dois minutos para cada carregamento de página.

Ber'Zophus
fonte
Tenho muitas perguntas: E a máquina em que você está executando? Ele tem potência suficiente para o que você está tentando fazer? Você tem plugins de terceiros? Que tipo de antivírus você possui?
Fickle Panther
1
Atualizei minha pergunta com mais informações.
Ber'Zophus 24/09/12
A remoção de arquivos offline apenas parecia ser a correção. Funcionou muito bem por um tempo, depois o problema voltou. Mas tenho outra resposta possível. Atualizando minha solução.
Ber'Zophus 25/09/12
Para secundar a questão do antivírus, tive grandes problemas com o ThreatFire em execução. Desligá-lo temporariamente acelerou o depurador para mim, pelo menos, centenas de vezes. Desligar o meu AV principal (Avast!) Só ajudou um pouco.
22813 Jon Coombs
@JohnSaunders você tentou executá-lo no modo de administrador ?: stackoverflow.com/questions/36322440/...
Robert Oschler

Respostas:

650

Aqui está como eu resolvi o problema "carregamento lento de símbolos" no Visual Studio 2012:

  • Vá para Ferramentas -> Opções -> Depuração -> Geral

  • Marque a caixa de seleção ao lado de "Ativar apenas meu código".

  • Vá para Ferramentas -> Opções -> Depuração -> Símbolos

  • Clique no botão "..." e crie / selecione uma nova pasta em algum lugar do computador local para armazenar símbolos em cache. Chamei o meu de "Cache de símbolo" e coloquei em Documents -> Visual Studio 2012.

  • Clique em "Carregar todos os símbolos" e aguarde o download dos símbolos nos servidores da Microsoft, o que pode demorar um pouco. Observe que o botão Carregar todos os símbolos está disponível apenas durante a depuração.

  • Desmarque a marca de seleção ao lado de "Microsoft Symbol Servers" para impedir que o Visual Studio consulte remotamente os servidores da Microsoft.

  • Clique OK".

A partir de agora, o carregamento do símbolo deve ser muito mais rápido.

Observe que, se você fizer alterações / downloads em assemblies da Microsoft, poderá ser necessário voltar à caixa de diálogo Símbolos e "Carregar todos os símbolos" novamente.

Zeb Kimmel
fonte
31
Sem solução para mim, eu tenho medo. Essa seria uma boa solução para aqueles que giram em torno de problemas com os símbolos da Microsoft. Infelizmente para mim, meu problema parece girar em torno de meus próprios símbolos. Esses símbolos já fazem cache local e, por algum motivo, compilaram centenas de blocos em apenas uma página carregada.
Ber'Zophus
8
obrigado por esta dica, um problema que estou tendo aqui é o botão carregar todos os símbolos está desativado para mim, alguma idéia?
22613 Chris McGrath
14
@ChrisMcGrath tente este link social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/… . BTW Obrigado pela ótima resposta
Tabelas de Bobby
16
mesmo depois de seguir suas etapas, o botão "Carregar todos os símbolos" fica oculto e não consigo clicar nele. O que eu deveria fazer agora? Estou usando o VS Express 2012.
Himanshu Aggarwal 2/13/13
86
Aqui está a solução para quem tem o botão Carregar todos os símbolos desativados: O botão está disponível apenas durante a depuração.
Gwynnbleid1
114

Desativar o intelliTrace corrigiu isso para mim.

No Visual Studio, Ferramentas -> Opções -> IntelliTrace

Em seguida, desmarque a caixa de seleção "Ativar IntelliTrace".

Desabilitar o IntelliTrace no Visual Studio 2012

zombar
fonte
2
Eu tive esse problema ao passar por um dos meus testes de unidade. Demorou cerca de 300 segundos com o intellitrace ativado e cerca de 14 segundos quando foi desligado. Essa correção realmente funcionou para mim.
Paul Bullivant
2
Melhorou a minha arranque de 25 segundos para 6. Eu acho que ajudou muito porque eu estava correndo muito do meu próprio código no arranque da aplicação
James Ellis-Jones
2
Maldição ... De 1 a 10 segundos. É selecionado por padrão no VS2012 Ultimate. Cuidado pessoal
Kevin Cloet
7
Não é possível encontrar o Intellitrace em Ferramentas => Opções. .. Eu tenho vsComunity 2015
shireef khatab 08/08
8
No Visual Studio 2015, o Intellitrace existe apenas no VS 2015 Enterprise Edition.
HK1
78

Nada disso funcionou para mim, mas eu encontrei um ponto de interrupção em um símbolo que foi excluído. Parece que 2010 estava pendurado nele. Para verificar se esse é o seu problema, depure-> windows-> breakpoints Se houver algum, exclua-os.

Saunders, mencionou que ele verificou isso, mas não foi mencionado nas soluções para esse problema. Talvez conhecimento comum para alguns, mas não para todos nós.

user2144480
fonte
5
De repente, comecei a ter esse problema no VS2010 e era, de fato, um dos meus pontos de interrupção que o estava causando. Assim que limpei meus pontos de interrupção, tornou-se rápido novamente.
David Airapetyan
3
Uau ... VS2012 estava rastejando, 5 minutos apenas para criar um projeto simples. Limpou todos os pontos de interrupção e está relâmpago rápido novamente, obrigado !!
QFDev 29/08
1
Depois de ler isso e seguir o que você disse, encontrei um ponto de interrupção que de alguma forma foi colocado no código XML de um dos meus arquivos de entidade edmx. Você é homem / mulher.
JB06
Muito obrigado. Isso resolveu meu problema com desempenho muito lento do VS2010.
Vaibhav Patle
2
Isso também trabalhou por um problema de depuração lenta que eu tinha em Visual Studio 2015.
Purplecat
41

Excluí a pasta "Arquivos temporários do ASP.NET" e o carregamento da minha página localhost melhorou drasticamente. Aqui está o caminho ...% temp% \ Arquivos temporários do ASP.NET \

Shaun Kennedy
fonte
9
C: \ Users \ {USER_NAME} \ AppData \ Local \ Temp é o caminho e "AppData" pasta é uma pasta oculta
Shiva Naru
2
Encontrei 1GB de porcaria velha aqui .... exclua tudo e o VS funcione um pouco melhor. :)
RitchieD
29

Você ativou o FusionLog?

Meu VisualStudio demorou muito para iniciar, abrir a solução e carregar símbolos ao iniciar a depuração. Estava lento apenas na minha máquina, mas não em outras máquinas.

O FusionLog grava toneladas de material de log no disco. Desativá-lo no RegEdit resolveu tudo, no meu caso.

Esta é a chave FusionLog no registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Verifique o valor do ForceLog (1 ativado, 0 desativado).

rkawano
fonte
1
Hum ... resposta muito boa. Eu estava no mesmo barco. Eu também habilitei FusionLoghá muito tempo e esqueci de desativá-lo. Agora, a depuração do ASP.NET MVCaplicativo é muito mais rápida. Graças a Deus e @rkawano. :)
Leniel Maccaferri
29

Eu experimentei o mesmo problema e tentei a maioria das resoluções acima. A simples exclusão de arquivos temporários e de cache acaba funcionando para mim.

Tente remover o conteúdo dessas duas pastas:

C:\Users\\{UserName}\AppData\Local\Microsoft\WebsiteCache

e

C:\Users\\{UserName}\AppData\Local\Temp (em particular, as pastas iisexpress e Arquivos temporários do ASP.NET).

Isso pode ser configurado para ocorrer automaticamente no logon no Windows, adicionando um arquivo cmd à C:\Users\\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startuppasta com o seguinte conteúdo:

rmdir C:\Users\\{username}\AppData\Local\Microsoft\WebsiteCache /s /q

rmdir C:\Users\\{username}\AppData\Local\Temp /s /q
aricons
fonte
Isso funcionou. A pasta "AppData" é uma pasta oculta, caso alguém não consiga encontrá-la.
Shiva Naru
3
É esse! Funciona tão bem que agora faço acontecer automaticamente quando faço logon no Windows: adicionei um arquivo chamado DeleteVisualStudioCache.cmd a C: \ Users \ {nomedeusuário} \ AppData \ Roaming \ Microsoft \ Windows \ Menu Iniciar \ Programas \ Inicialize com os seguintes comandos: rmdir C: \ Users \ {nome de usuário} \ AppData \ Local \ Microsoft \ WebsiteCache / s / q rmdir C: \ Users \ {nome de usuário} \ AppData \ Local \ Temp / s / q pausa
Graham Laight
25

Acho que finalmente posso pelo menos conhecer a causa, embora não seja o motivo. Quando o problema começou a ocorrer novamente, notei uma tonelada de processos "conhost.exe" órfãos. Eu fecharia o Visual Studio e eles permaneceriam abertos. Encerrar a tarefa em cada um deles finalmente resolveu o problema de maneira confiável. [esperançosamente]

(Observe que o conhost.exe não é um processo do Visual Studio, embora o Visual Studio o use. Portanto, outros usuários por aí podem ter outros aplicativos por aí que executam o conhost.exe. Eu sei que minha máquina não faz e é por isso que posso finalizar com segurança todas as tarefas, exceto a YMMV.)

Por que isso acontece? Parece ocorrer quando abro mais de um projeto ao mesmo tempo, o que costumo fazer com frequência, mesmo que eu apenas crie e depure um deles a qualquer momento.


Editar # 1 - Infelizmente, esta não é uma "bala de prata". Nem sempre funciona para mim. Normalmente, quando as coisas ficam lentas, eu fecho todas as minhas sessões do Visual Studio, depois vou para o gerenciador de tarefas e encerro qualquer instância, conhecost.exe, iisexpress.exe Microsoft.VisualStudio.Web.Host.exe e MSBuild.exe Eu posso encontrar.

Normalmente, depois disso, quando eu reiniciar meu projeto, ele será carregado rapidamente. Mas não sempre.

Realmente acho que o melhor curso de ação é provavelmente não criar e depurar código de um compartilhamento de rede / pasta redirecionado.


Editar # 2 - Dois anos depois, e isso ainda é um problema para mim no Visual Studio Community 2013, mas pelo menos pareci encontrar a tarefa culpada: Explorer.exe . Sim, quem sabia. No momento em que termino essa tarefa, bam, a página é carregada em um único segundo.

Se eu tiver um navegador de arquivos do Windows Explorer aberto na minha unidade de rede redirecionada (geralmente porque é onde está o meu código), esse problema parece ocorrer. Fechar a janela não é suficiente, eu tenho que matar toda a tarefa Explorer.exe. Eu só podia adivinhar o que está fazendo ... enlouquecendo com alças de arquivo?

Normalmente, posso usar o gerenciador de tarefas para iniciar uma nova tarefa do explorer.exe (só posso usar alt-tab), e o Visual Studio continuará carregando bem e rapidamente. Mas se eu abrir o Windows Explorer novamente, ele quase sempre voltará ao super-slow-mo.

Portanto, se você tem um compartilhamento de rede redirecionado, experimente. É melhor do que trabalhar localmente.

Ber'Zophus
fonte
Sei que essa é uma notícia um pouco antiga, mas tive o mesmo problema. Minha equipe sugeriu que eu usasse um script de construção que copiasse os arquivos da minha fonte local para onde os arquivos estavam sendo executados e toda vez que eu executasse essa sub-rotina, ela criaria um conhost.exe e não o fecharia. Depois que terminei todas as cópias extras, ele correu muito rápido novamente.
precisa saber é o seguinte
22

As opções acima são todas boas soluções e eu tentei todas elas, mas obtive a solução aqui , que é

Debug -> Delete All Breakpoints
Tahir Hassan
fonte
19

Para mim, era o IE 9.08.8112.16241. Assim que eu usei o Firefox ou o Chrome, não houve depuração lenta com o F10 ou o F11. Não sei qual é o problema do IE, mas oficialmente desprezo usá-lo para testes agora.

Atualização: desliguei todos os complementos de programa do IE e ele voltou à velocidade máxima. Ligá-los um de cada vez revelou que o LastPass (no meu caso) era o culpado. Acho que não culpo a MS, afinal.

DMadden51
fonte
2
Isso corrigiu meu problema também. Eu estava obtendo bloqueios completos do sistema ao tentar depurar, especialmente ao usar a janela do QuickWatch. A barra de ferramentas LastPass precisa estar desativada. (IE 10.0.9200.16635)
mpeterson
1
E é por isso que eu amo o StackOverflow. Mas o LastPass deve corrigir isso - estou enviando um e-mail agora para que eles saibam. Obviamente, ainda há um problema com o VS2013 e o IE 11. LastPass desativado e de volta ao normal. Obrigado a UserBlueOne pela informação - pode continuar a trabalhar novamente.
25414 Sean
1
FREAKEN LASTPASS! Meu teclado estava completamente entupido ao depurar no VS 2012 com meu aplicativo MVC. LastPass desativado e tudo voou novamente. OBRIGADO! Votado.
Tony
Em Win8.x com IE se você usar MS conta para o login, você pode tê-lo sincronizar os logins assim não há necessidade de usar LastPass, mas ainda tem (parcialmente) os benefícios, :)
Peter
Isso ... funcionou para mim. Observe que agora é 2019 --- seis anos depois --- e estou usando o plug-in LastPass com o Microsoft Edge.
Luke Maurer
15

Para mim, implementei essa dica, que basicamente melhorou drasticamente o desempenho adicionando os dois atributos a seguir à tag de compilação no web.config

<compilation ... batch="false" optimizeCompilations="true"> ... </compilation>

O que batch = "false" faz?

Torna a pré-compilação mais seletiva, compilando apenas as páginas que foram alteradas e exigem recompilação

O que exatamente as otimizeCompilations estão fazendo? Fonte

O ASP.NET usa um código de hash por aplicativo que inclui o estado de várias coisas, incluindo a pasta bin e App_Code e global.asax. Sempre que um domínio de aplicativo do ASP.NET é iniciado, ele verifica se esse código de hash foi alterado em relação ao calculado anteriormente. Se houver, toda a pasta codegen (onde os conjuntos compilados e copiados por sombra vivem) é apagada.

Quando essa otimização é ativada (via optimizeCompilations = "true"), o hash não leva mais em consideração bin, App_Code e global.asax. Como resultado, se essas alterações forem alteradas, não eliminamos a pasta codegen.

Referência: Elemento de compilação no msdn

Korayem
fonte
2
Obrigado por postar. Isso realmente fez mais para melhorar meu desempenho do que a resposta aceita.
Kanapolis
@ Ber'Zophus, você pode tentar este e compartilhar conosco seus resultados?
precisa saber é o seguinte
compilação vai para dentro system.web
The One
1
Confirmado para trabalhar com soluções grandes e aplicativos da Web (MVC) dentro.
hQuse
12

Também tive problemas de desempenho de execução com depuração e tentei muitas opções de depurador. No meu caso, enorme desempenho alcançado quando altero essas opções:

Ferramentas - Opções - Depuração - Janela Saída - (Configurações gerais de saída - Todas as saídas de depuração) - DESLIGADO

Arkhivania
fonte
12

No meu caso, era a extensão do .NET Reflector Visual Studio (versão 8.3.0.93) com o VS 2012. A depuração estava demorando 10 segundos para cada etapa (F10).

No Visual Studio, vá para Ferramentas / Extensões e Atualizações ... e desative a Extensão do .NET Reflector Visual Studio . Não se esqueça de reiniciar o Visual Studio.

shamp00
fonte
Descobri da maneira mais difícil que isso estava causando o meu problema também. Somente depois de desativar a extensão, procurei ver se alguém havia notado.
21413 awj
11

Eu tive problemas com a depuração lenta do Visual Studio quando o depurador "Native Code" foi ativado. Tente desativá-lo.

No "Visual Studio 2012", vá para:

  1. Propriedades do projeto ->
  2. Web ->
  3. Depuradores (parte inferior da página). ->
  4. Desabilitar tudo, exceto o ASP.NET

Espero que ajude.

Perguntas semelhantes: 1 , 2

Paulius Zaliaduonis
fonte
O meu já está definido para isso, infelizmente, então não há solução para mim. Mas poderia ser um bom conselho para os outros tentarem.
Ber'Zophus
Isso consertou para mim!
Harvey
11

No meu caso foi

Tools/Options/Debugging/General/Enable JavaScript debugging for ASP.NET (Chrome and IE)

Depois de desmarcar isso, meu início de depuração passou de 45-60 segundos para 0-5 segundos.

toddmo
fonte
Esta é a mais rápida #
Frank Myat th
10

Uma vez, após uma queda de energia, tive que enfrentar o mesmo problema de lentidão cada vez que um ponto de interrupção era atingido ou uma exceção era lançada.

Tive a vaga lembrança de que o arquivo "suo" (no mesmo diretório do arquivo de solução "sln") pode estar corrompido e tornar tudo lento.

insira a descrição da imagem aqui

Eu apaguei meus arquivos "suo" e tudo estava ok. A exclusão de arquivos .suo é inofensiva e implica apenas recriar o layout do meu windows, além do projeto inicial e algumas outras personalizações não críticas.

Larry
fonte
Acabei de perceber que também fiquei lento depois da queda de energia, muito obrigado por esta resposta.
Nic
procure uma .vspasta em versões posteriores do Visual Studio. Apague isso.
CAD cara
10

Eu também estava enfrentando esse problema. Abaixo estão as etapas que eu executo e ele funciona para mim sempre:

  • Excluindo o arquivo .suo da solução.
  • Excluindo os arquivos ASP.NET temporários (você pode encontrá-lo em % WINDOW% \ Microsoft.NET \ Framework \\ Arquivos ASP.NET temporários )
  • Excluindo todos os pontos de interrupção no aplicativo.
Geeky Ninja
fonte
Reiniciar levou cinco vezes mais que o normal, em vez de dez vezes mais que o normal. A exclusão do arquivo .suo tornou a inicialização quase instantânea. Obrigado!
Shelby115
Parece que a exclusão do arquivo .suo funcionou. Qualquer razão para excluir esses arquivos ajuda a melhorar o desempenho.
precisa saber é o seguinte
O @SharpCoder .suo contém muitas informações, como quais arquivos estão abertos no IDE, informações do depurador, configurações locais etc. alguns casos.
precisa
9

Não sei se você ainda está tendo esse problema, mas depuro sites no Visual Studio anexando o depurador ao próprio processo, em vez de permitir que o VS faça isso por mim, e achei que ele melhorou bastante os tempos. Eu uso uma extensão para o VS chamada AttachTo e tenho um pequeno artigo sobre como usá-lo aqui .

Eu espero que isso ajude.

Andrew Davis
fonte
7

Meu problema lento do VS foi resolvido desativando o link do navegador

insira a descrição da imagem aqui

Salgado
fonte
Eu sei que os comentários de "obrigado" são um pouco desaprovados aqui, mas, sério, MUITO OBRIGADO. Essa mudança levou o programa que estou testando de lento a ponto de ser inutilizável, para reatividade essencialmente instantânea. Você provavelmente me comprou cerca de uma ou duas horas por dia de produtividade só para não ter que esperar em torno de coisas a carga
thnkwthprtls
@thnkwthprtls de nada - uma daquelas configurações padrão do MS que você precisa observar :)
Salty
Não é necessário desativá-lo, veja minha resposta => stackoverflow.com/a/34979659/2736742 #
A. Morel
6

Se alguém perceber esse comportamento saindo do campo esquerdo, verifique se você não tem nenhum ponto de interrupção definido no web.config. Eu devo ter definido um com um clique perdido do mouse, e realmente diminuiu todas as operações de depuração.

zmercier
fonte
Só tinha exatamente a mesma coisa. Quase me deixou louco. Por que diabos um ponto de interrupção inativo em um arquivo web.config interrompe completamente a depuração?
pleunv
6

Depois de passar o dia todo esperando que os símbolos carreguem tão lentamente quanto a velocidade da tartaruga, misturando e alternando entre todas as combinações possíveis: Just My Code, símbolos de cache , Intellitrace , Just-In-Time, processos de extinção , etc.

Minha solução foi realmente desativar o antivírus . Sim, o Windows Defender estava atrasando o lançamento do meu projeto! Ele verificaria todas as DLLs, conforme solicitado pelo Visual Studio, e atrasaria todo o processo de carregamento de símbolos.

Devo dizer que nossas máquinas têm ótimas especificações para compilar a solução muito rápido, o que nunca foi um problema. Codificamos no VS 2013 Ultimate.

IG Pascual
fonte
1
Sim, desligar o Windows Defender funciona como um encanto! Para desativar permanentemente o Windows Defender no Windows 10, defina Iniciar = "4" (4 é para desabilitado) no caminho RegEdit HKLM \ System \ CurrentContolSet \ Services \ WinDefend
hal
Tendo o problema com o antivírus AVG. Alguém descobriu se uma pasta específica pode ser excluída do antivírus para resolver o problema, por favor? Coloquei símbolos em cache e excluí a pasta de cache de símbolos - mas isso não fez diferença.
Graham Laight
1
você pode manter o AV e excluir da análise certos caminhos e destinos (VS e seus projetos)
Soleil - Mathieu Prévot
5

Esvaziar o cache de símbolos funcionou para mim.

Consulte: barra de menus / Ferramentas / Opções / Depuração / Símbolos / Esvaziar cache de símbolos

Dimitri C.
fonte
3

Problema semelhante desperdiçado melhor metade do meu dia!

Como a solução para o meu problema era diferente do que foi dito aqui, vou publicá-la para ajudar outras pessoas.

O meu era um ponto de interrupção. Eu tinha um ponto de interrupção "Break at function" (ou seja, em vez de pressionar F9 em uma linha de código, nós os criamos usando a janela de pontos de interrupção) que deveria parar em uma função de biblioteca fora do meu projeto.

E eu tinha "Use Intellisense para verificar o nome da função " VERIFICADO. (Informações aqui .)

Isso ficou mais lento do que o inferno (inicialização do projeto de 2 segundos a 5 minutos).

A remoção do ponto de interrupção resolveu o problema definitivamente.

BuddhiP
fonte
3

Uma coisa que funcionou para mim depois de fazer tudo o que foi
dito acima foi: Na janela Threads (Debug-> Windows-> Threads), defina Agrupar por como Nenhum. Isso só pode ser feito durante a depuração.

Isso teve um impacto mesmo depois de fechar a janela.

David
fonte
3

No Visual Studio:

Ferramentas -> Opções -> Depuração -> Símbolos

Escolha "Somente módulos especificados". Clique no link "especificar módulos" e adicione um módulo em branco (clique no botão novo documento e pressione OK).

MCS
fonte
3

Abra a pasta da solução no windows explorer, feche o visual studio, exclua o arquivo .suo do windows explorer.

Agora abra o projeto no visual studio, espero que o depurador seja anexado / desanexado rapidamente.

Abdul Rauf
fonte
3

Para mim, eram pontos de interrupção condicionais. Essas parecem realmente desacelerar as coisas.

ewolfman
fonte
1
De fato eles fazem. Mas somente se as linhas que os contêm forem realmente executadas.
Peter Mortensen
3

Vá para suas variáveis ​​de ambiente e procure a chave _NT_SYMBOL_PATH.

Delete isso.

Voila, funcionou como um encanto.

ozba
fonte
value == symsrv*symsrv.dll*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbolsainda não há dados!
SliverNinja - MSFT
3

O problema para mim foi o recurso "Link do navegador" que é muito pesado quando você tem várias guias abertas para o mesmo projeto!

Porque toda vez que lançamos o projeto, ele abre uma nova guia com as comunicações por link do navegador.

Apenas feche todas as guias associadas ao projeto e mantenha apenas uma aberta!

Este estúdio visual instantaneamente grátis! É Magica ! ;-)

“O Link do navegador é um recurso desde o Visual Studio 2013 que cria um canal de comunicação entre o ambiente de desenvolvimento e um ou mais navegadores da web. Você pode usar o Link do navegador para atualizar seu aplicativo Web em vários navegadores ao mesmo tempo, o que é útil para testes entre navegadores. ”

A. Morel
fonte
3

Uma solução rápida e fácil para aqueles que não têm muito desvio das configurações padrão do VS.

Ferramentas -> Configurações de importação e exportação -> Sim, salve minhas configurações atuais -> Visual C #

Estou certo de que a solução acima também funcionaria com outras configurações padrão. No meu caso, algo atrapalhou minhas configurações de carregamento de símbolos, mas não foi possível corrigi-lo, mesmo que eu tenha tentado algumas das soluções sugeridas.

GDS
fonte
3

Verifique se você não abriu o Visual Studio no modo administrador

Eu enfrentei esse problema e tive que executar no modo normal.

sajad
fonte
6
Infelizmente, a execução como administrador é necessária se você tiver seus projetos definidos para execução no IIS.
Nelson Rothermel
@NelsonRothermel Qual versão? Não é mais (VS2017).
Soleil - Mathieu Pré-dot
@Soleil: No VS2017, ainda é necessário. O IIS é executado como um serviço do Windows (ou conjunto de serviços) e não no espaço do usuário. Você pode estar se referindo ao IIS Express, que não requer direitos de administrador. Eu geralmente recomendo que você use o último, especialmente em uma organização que bloqueia máquinas, mas tem algumas desvantagens.
1913 Nelson Rothermel