Dicas e truques de desempenho do Visual Studio

As recomendações de desempenho do Visual Studio destinam-se a situações de baixa memória, o que podem ocorrer em casos raros. Nessas situações, é possível otimizar determinados recursos do Visual Studio que você talvez não esteja usando. As dicas a seguir não devem ser consideradas como as recomendações gerais.

Observação

Se você estiver tendo dificuldades para usar o produto devido a problemas de memória, conte para nós pela ferramenta de comentários.

Usar um sistema operacional de 64 bits

Se você atualizar seu sistema de uma versão de 32 bits do Windows para uma versão de 64 bits, expanda a quantidade de memória virtual disponível para o Visual Studio de 2 GB para 4 GB. Uma atualização do sistema operacional de 64 bits permite que o Visual Studio lide com cargas de trabalho maiores.

Para obter mais informações, confira Limites de Memória para as versões do Windows e do Windows Server.

Dica

O Visual Studio 2022 no Windows é um aplicativo de 64 bits. As versões anteriores são de 32 bits.

Desabilitar a restauração de arquivo automática

O Visual Studio reabre automaticamente os documentos que foram deixados abertos na sessão anterior. Essa ação de restauração automática de arquivo pode prolongar o tempo necessário para carregar uma solução em até 30% ou mais, dependendo do tipo de projeto e dos documentos que estão sendo abertos. Designers como o Windows Forms e o XAML e alguns arquivos JavaScript e TypeScript, podem demorar para abrir.

O Visual Studio notifica você em uma barra amarela quando a restauração automática de documentos está fazendo com que a solução seja carregada de maneira mais lenta. Você pode desabilitar a reabertura de arquivo automática seguindo estas etapas:

  1. Selecione Ferramentas>Opções para abrir a caixa de diálogo Opções.

  2. Na página Projetos e Soluções>Geral, desmarque a opção Reabrir documentos ao carregar a solução.

Caso você desabilite a restauração automática de arquivos, uma maneira rápida de navegar para os arquivos que deseja abrir é usar um dos comandos Ir para:

  • Para a funcionalidade Ir para general, selecione Editar>Ir para>Ir para Todos ou pressione Ctrl+T.

  • Vá para a localização da última edição em uma solução usando Editar>Ir para>Ir para Localização da Última Edição ou pressionando Ctrl+Shift+Backspace.

  • Use Ir Para Arquivo Recente para ver uma lista dos arquivos visitados recentemente em uma solução. Selecione Editar>Ir para>Ir para Arquivo Recente ou pressione Ctrl+1, Ctrl+R.

Configurar as opções de depuração

Se você tem ficado com pouca memória durante as sessões de depuração normalmente, você pode otimizar o desempenho fazendo uma ou mais alterações de configuração.

  • Habilitar Apenas Meu Código

    A otimização mais simples é habilitar o recurso Apenas Meu Código, que só carrega símbolos para o seu projeto. Habilitar esse recurso pode resultar em uma economia significativa de memória para depurar aplicativos gerenciados (.NET). Esta opção já fica habilitada por padrão em alguns tipos de projeto.

    Para habilitar o Apenas Meu Código, escolha Ferramentas>Opções>Depuração>Geral e selecione Habilitar Apenas Meu Código.

  • Especificar os símbolos a serem carregados

    Para depuração nativa, o carregamento de arquivos de símbolo (.pdb) é caro em termos de recursos de memória. Você pode definir as configurações de símbolo de depuração para economizar memória. Normalmente, você pode configurar a solução para carregar somente os módulos do seu projeto.

    Para especificar o carregamento de símbolos, escolha Ferramentas>Opções>Depuração>Símbolos.

    Defina as opções para Somente os módulos especificados em vez de Todos os módulos e, em seguida, especifique quais módulos você deseja carregar. Durante a depuração, você também pode clicar com o botão direito do mouse em módulos específicos na janela Módulos para incluir explicitamente um módulo no carregamento de símbolo. (Para abrir a janela durante a depuração, escolha Depuração>Janelas>Módulos.)

    Para obter mais informações, confira Especificar arquivos de símbolo e de origem no depurador.

  • Desabilitar Ferramentas de Diagnóstico

    É recomendável desabilitar a criação de perfil de CPU após o uso. Esse recurso pode consumir grandes quantidades de recursos. Quando a criação de perfil de CPU está habilitada, esse estado é mantido nas sessões de depuração subsequentes, por isso vale a pena desativá-lo explicitamente após terminar. Você pode economizar alguns recursos desabilitando as ferramentas de diagnóstico durante a depuração se você não precisar dos recursos fornecidos.

    Para desabilitar as Ferramentas de Diagnóstico, inicie uma sessão de depuração, selecione Ferramentas>Opções>Depuração>Geral e desmarque a opção Habilitar Ferramentas de Diagnóstico durante a depuração.

    Para obter mais informações, confira Ferramentas de Criação de Perfil.

Desabilitar ferramentas e extensões

Algumas ferramentas ou extensões podem ser desabilitadas para melhorar o desempenho.

Dica

Geralmente, é possível isolar problemas de desempenho desativando as extensões, uma por vez e verificando novamente o desempenho.

Serviço de linguagem gerenciado (Roslyn)

Para obter mais informações sobre as considerações de desempenho do .NET Compiler Platform (“Roslyn"), consulte Considerações de desempenho para grandes soluções.

  • Desabilitar CodeLens

    O Visual Studio executa uma tarefa Localizar todas as referências em cada método como exibido. O CodeLens fornece recursos como a exibição embutida do número de referências. O trabalho é executado em um processo separado como ServiceHub.RoslynCodeAnalysisService32. Em soluções grandes ou em sistemas com recursos restritos, esse recurso pode afetar significativamente o desempenho. Se estiver enfrentando problemas de memória, por exemplo, ao carregar uma solução grande em um computador de 4 GB, ou alta utilização da CPU para esse processo, você poderá desabilitar o CodeLens para liberar recursos.

    Para desabilitar o CodeLens, escolha Ferramentas>Opções>Editor de Texto>Todas as Linguagens>CodeLens e desmarque o recurso.

    Para obter mais informações, confira Localizar alterações de código e outros históricos com o CodeLens.

Outras ferramentas e extensões

  • Desabilitar extensões

    Extensões são componentes de software adicionais acrescentados ao Visual Studio que fornecem uma funcionalidade nova ou estendem a funcionalidade existente. Extensões geralmente podem ser uma fonte de problemas de recursos de memória. Se você estiver tendo problemas de recursos de memória, tente desabilitar as extensões, uma por vez, para ver como ele afeta o cenário ou o fluxo de trabalho.

    Para desabilitar as extensões, acesse Extensões> Gerenciar Extensões e desabilite uma extensão específica.

  • Desabilitar o modo de mapa

    O modo de mapa exibe linhas de código, em miniatura, na barra de rolagem. O modo de mapa está habilitado como padrão.

    Para desabilitar o modo de mapa, acesse Ferramentas>Opções>Editor de Texto>Todas as Linguagens>Barras de Rolagem e, na seção Comportamento, desmarque a opção Usar modo de mapa para barra de rolagem vertical.

  • Desabilitar quebra de linha de palavras

    A quebra de linha de palavras exibe a parte de uma longa linha de código que se estende além da largura atual da janela do editor de código. A quebra de linha de palavras está ativada por padrão.

    Para desabilitar a quebra de linha de palavras para um projeto no qual você está trabalhando no momento, vá para Editar>Avançado>Quebrar linha de palavras. (Você pode alternar essa configuração usando os mesmos comandos de menu.)

    Para desabilitar a quebra de linha de palavras para todos os projetos, acesse Ferramentas>Opções>Geral>Editor de Texto>Todas as Linguagens>Geral e, na seção Configurações, desmarque a opção Quebrar linha de palavras.

  • Desabilitar o XAML Designer

    O Designer XAML está habilitado por padrão, mas só consome recursos se um arquivo .xaml é aberto. Se você trabalha com arquivos XAML, mas não quer usar a funcionalidade do designer, desabilite esse recurso para liberar memória.

    Para desabilitar o Designer XAML, acesse Ferramentas>Opções>Designer XAML>Habilitar o Designer XAML e desmarque a opção.

  • Remover as cargas de trabalho

    Você pode usar o Instalador do Visual Studio para remover as cargas de trabalho que não são mais usadas. Esta ação pode simplificar o custo de inicialização e do runtime ignorando pacotes e assemblies que não são mais necessários.

  • Adicionar arquivos não rastreados ao .gitignore local

    O Visual Studio executa o comando git status Git com arquivos não rastreados para fornecer uma experiência perfeita quando você adiciona novos arquivos a um repositório. Quando há um grande número de arquivos não rastreados, git status pode consumir memória extra. Para ignorar esses arquivos e melhorar o desempenho do git status, você pode adicionar esses arquivos ou pastas ao arquivo local .gitignore. Para acessar o arquivo, acesse Git>Configurações>Configurações do Repositório Git. Em seguida, na seção Arquivos Git, selecione Adicionar para criar um arquivo .gitignore ou selecione Editar se você já tiver um.

  • Habilitar o grafo de confirmação nas ferramentas do Git

    Novidades no Visual Studio 2022 versão 17.2: se você estiver enfrentando atrasos ao exibir seu repositório Git ou histórico de ramificação no Visual Studio, integramos um recurso de "grafo de confirmação" que pode ajudar. Para usar o grafo de confirmação, faça o download e instale o Visual Studio 2022. Para saber mais sobre o grafo de confirmação, consulte a postagem no blog Sobrecarregar sua experiência do Git no Visual Studio.

Forçar uma coleta de lixo

O CLR usa um sistema de gerenciamento de memória de coleta de lixo. Nesse sistema, às vezes a memória é usada pelos objetos que não são mais necessários. Esse estado é temporário. O coletor de lixo libera esta memória com base em seu desempenho e a heurística de uso de recursos. Você pode forçar o CLR a coletar a memória não utilizada usando uma tecla de atalho no Visual Studio. Se houver uma quantidade significativa de lixo aguardando a coleta e você forçar uma coleta de lixo, você deverá ver o uso de memória do processo devenv.exe ser deixado no Gerenciador de Tarefas. Raramente é necessário usar esse método. No entanto, após uma operação cara (como um build completo, sessão de depuração ou um evento de abertura de solução), ele pode ajudar a determinar a quantidade de memória que realmente está sendo usado pelo processo. Como o Visual Studio é misto (gerenciado e nativo), geralmente é possível que o alocador nativo e o coletor de lixo disputem pelos recursos de memória limitada. Em condições de alto uso de memória, pode ser útil forçar o coletor de lixo a ser executado.

Para forçar uma coleta de lixo, use o atalho de teclado: Ctrl+Alt+Shift+F12, Ctrl+Alt+Shift+F12 (pressione-a duas vezes).

Se forçar a coleta de lixo de forma confiável faz seu cenário funcionar, relate isso na ferramenta de comentários do Visual Studio, pois esse comportamento provavelmente trata-se de um bug.

Para ver uma descrição detalhada do coletor de lixo CLR, consulte Noções básicas da coleta de lixo.