Dicas e truques de desempenho do Visual StudioVisual Studio performance tips and tricks

As recomendações de desempenho do Visual Studio destinam-se a situações de baixa memória, o que podem ocorrer em casos raros.Visual Studio performance recommendations are intended for low memory situations, which may occur in rare cases. Nessas situações, é possível otimizar determinados recursos do Visual Studio que você talvez não esteja usando.In these situations, you can optimize certain Visual Studio features that you may not be using. As dicas a seguir não devem ser consideradas como as recomendações gerais.The following tips are not intended as general recommendations.

Observação

Se você estiver tendo dificuldades para usar o produto devido a problemas de memória, informe-nos por meio da ferramenta de comentários.If you’re having difficulty using the product because of memory issues, let us know through the feedback tool.

Usar um sistema operacional de 64 bitsUse a 64-bit OS

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.If you upgrade your system from a 32-bit version of Windows to a 64-bit version, you expand the amount of virtual memory available to Visual Studio from 2 GB to 4 GB. Isso permite que o Visual Studio lide com cargas de trabalho significativamente maiores, mesmo sendo um processo de 32 bits.This enables Visual Studio to handle significantly larger workloads, even though it is 32-bit process.

Para obter mais informações, consulte Limites de memória e Usar /LARGEADDRESSAWARE no Windows de 64 bits.For more information, see Memory limits and Use /LARGEADDRESSAWARE on 64-bit Windows.

Desabilitar a restauração de arquivo automáticaDisable automatic file restore

O Visual Studio reabre automaticamente os documentos que foram deixados abertos na sessão anterior.Visual Studio automatically reopens documents that were left open in the previous session. Isso pode prolongar o tempo necessário para carregar uma solução em até 30% ou mais, dependendo do tipo de projeto e dos documentos sendo abertos.This can prolong the times it takes to load a solution by up to 30% or more, depending on the project type and the documents being opened. Designers como o Windows Forms e o XAML e alguns arquivos JavaScript e typescript, podem demorar para abrir.Designers like Windows Forms and XAML, and some JavaScript and typescript files, can be slow to open.

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 significativamente mais lenta.Visual Studio notifies you in a yellow bar when automatic document restore is causing a solution to load significantly slower. Você pode desabilitar a reabertura de arquivo automática seguindo estas etapas:You can disable automatic file reopening by following these steps:

  1. Selecione ferramentas > Opções para abrir a caixa de diálogo Opções .Select Tools > Options to open the Options dialog box.

  2. Na página geral de projetos e soluções > , desmarque reabrir documentos na carga da solução.On the Projects and Solution > General page, deselect Reopen documents on solution load.

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:If you disable automatic file restore, a quick way to navigate to files you want to open is by using one of the Go To commands:

  • Para a funcionalidade Ir para general, selecione Editar > Ir para > Ir para Todos ou pressione Ctrl+T.For the general Go To functionality, select Edit > Go To > Go To All, or press Ctrl+T.

  • Vá para o último local de edição em uma solução usando Editar > ir para > ir para o último local de edição ou pressionando Ctrl + Shift + Backspace.Jump to the last edit location in a solution using Edit > Go To > Go To Last Edit Location, or by pressing Ctrl+Shift+Backspace.

  • Use Ir Para Arquivo Recente para ver uma lista dos arquivos visitados recentemente em uma solução.Use Go To Recent File to see a list of recently visited files in a solution. Selecione Editar > ir para > ir para arquivo recente ou pressione Ctrl + 1, Ctrl + R.Select Edit > Go To > Go To Recent File, or press Ctrl+1, Ctrl+R.

Configurar as opções de depuraçãoConfigure debugging options

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.If you are typically running low on memory during debugging sessions, you can optimize performance by making one or more configuration changes.

  • Habilitar Apenas Meu CódigoEnable Just My Code

    A otimização mais simples é habilitar o recurso Apenas Meu Código, que só carrega símbolos para o seu projeto.The simplest optimization is to enable the Just My Code feature, which only loads symbols for your project. Habilitar esse recurso pode resultar em uma economia significativa de memória para depurar aplicativos gerenciados (.NET).Enabling this feature can result in a significant memory saving for debugging managed applications (.NET). Esta opção já fica habilitada por padrão em alguns tipos de projeto.This option is already enabled by default in some project types.

    Para habilitar o Apenas Meu Código, escolha Ferramentas > Opções > Depuração > Geral e selecione Habilitar Apenas Meu Código.To enable Just My Code, choose Tools > Options > Debugging > General, and then select Enable Just My Code.

  • Especificar os símbolos a serem carregadosSpecify symbols to load

    Para a depuração nativa, carregar arquivos de símbolo (. pdb) é caro em termos de recursos de memória.For native debugging, loading symbol files (.pdb) is expensive in terms of memory resources. Você pode definir as configurações de símbolo de depuração para economizar memória.You can configure your debugger symbol settings to conserve memory. Normalmente, você pode configurar a solução para carregar somente os módulos do seu projeto.Typically, you configure the solution to only load modules from your project.

    Para especificar o carregamento de símbolos, escolha ferramentas > Opções > > símbolos de depuração.To specify symbol loading, choose Tools > Options > Debugging > Symbols.

    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.Set the options to Only specified modules instead of All modules and then specify which modules you care to load. 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.While debugging, you can also right-click specific modules in the Modules window to explicitly include a module in the symbol load. (Para abrir a janela durante a depuração, escolha depurar > Windows > Módulos.)(To open the window while debugging, choose Debug > Windows > Modules.)

    Para obter mais informações, consulte Noções básicas sobre arquivos de símbolo.For more information, see Understand symbol files.

  • Desabilitar Ferramentas de DiagnósticoDisable Diagnostic Tools

    É recomendável desabilitar a criação de perfil de CPU após o uso.It is recommended that you disable CPU profiling after use. Esse recurso pode consumir grandes quantidades de recursos.This feature can consume large amounts of resources. 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.Once CPU profiling is enabled, this state is persisted across subsequent debug sessions, so it’s worth explicitly turning it off when done. Você pode economizar alguns recursos desabilitando as ferramentas de diagnóstico durante a depuração se você não precisar dos recursos fornecidos.You may save some resources by disabling the diagnostic tools while debugging if you do not need the provided features.

    Para desabilitar o ferramentas de diagnóstico, inicie uma sessão de depuração, selecione ferramentas > Opções > depuração > geral e, em seguida, desmarque a opção habilitar ferramentas de diagnóstico ao depurar .To disable the Diagnostic Tools, start a debugging session, select Tools > Options > Debugging > General, and then deselect the Enable Diagnostic Tools while debugging option.

    Para obter mais informações, consulte Ferramentas de Criação de Perfil.For more information, see Profiling Tools.

Desabilitar ferramentas e extensõesDisable tools and extensions

Algumas ferramentas ou extensões podem ser desabilitadas para melhorar o desempenho.Some tools or extensions can be turned off to improve performance.

Dica

Geralmente, é possível isolar problemas de desempenho desativando as extensões, uma por vez e verificando novamente o desempenho.You can often isolate performance issues by turning off extensions one at a time and rechecking performance.

Serviço de linguagem gerenciado (Roslyn)Managed language service (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.For information about .NET Compiler Platform ("Roslyn") performance considerations, see Performance considerations for large solutions.

  • Desabilitar análise de solução completaDisable full solution analysis

    O Visual Studio executa a análise em toda a sua solução para proporcionar uma experiência avançada sobre os erros antes de invocar um build.Visual Studio performs analysis on your entire solution in order to provide a rich experience about errors before invoking a build. Esse recurso é útil para identificar erros assim que possível.This feature is useful to identify errors as soon as possible. No entanto, para soluções grandes, esse recurso pode consumir recursos significativos de memória.However, for large solutions, this feature can consume significant memory resources. Se você estiver tendo problemas semelhantes ou pressão de memória, desabilite essa experiência para liberar esses recursos.If you’re experiencing memory pressure or similar issues, you can disable this experience to free up these resources. Por padrão, essa opção é habilitada para o Visual Basic e desabilitada para C#.By default, this option is enabled for Visual Basic and disabled for C#.

    Para desabilitar a Análise Completa da Solução, escolha Ferramentas > Opções > Editor de Texto e selecione Visual Basic ou C#.To disable Full Solution Analysis, choose Tools > Options > Text Editor, then select either Visual Basic or C#. Escolha Avançado e desmarque Habilitar análise de solução completa.Choose Advanced and deselect Enable full solution analysis.

  • Desabilitar CodeLensDisable CodeLens

    O Visual Studio executa uma tarefa Localizar todas as referências em cada método como exibido.Visual Studio performs a Find All References task on each method as it is displayed. O CodeLens fornece recursos como a exibição embutida do número de referências.CodeLens provides features such as the inline display of the number of references. O trabalho é executado em um processo separado como ServiceHub.RoslynCodeAnalysisService32.The work is performed in a separate process such as ServiceHub.RoslynCodeAnalysisService32. Em soluções grandes ou em sistemas com recursos restritos, esse recurso pode afetar significativamente o desempenho.In large solutions, or on resource-constrained systems, this feature can have a significant impact on performance. 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.If you’re experiencing memory issues, for example, when loading a large solution on a 4-GB machine, or high CPU usage for this process, you can disable CodeLens to free up resources.

    Para desabilitar o CodeLens, escolha Ferramentas > Opções > Editor de Texto > Todas as Linguagens > CodeLens e desmarque o recurso.To disable CodeLens, choose Tools > Options > Text Editor > All Languages > CodeLens, and deselect the feature.

    Observação

    O CodeLens está disponível nas edições Professional e Enterprise do Visual Studio.CodeLens is available in the Professional and Enterprise editions of Visual Studio.

Outras ferramentas e extensõesOther tools and extensions

  • Desabilitar extensõesDisable Extensions

    Extensões são componentes de software adicionais acrescentados ao Visual Studio que fornecem uma funcionalidade nova ou estendem a funcionalidade existente.Extensions are additional software components added to Visual Studio that provide new functionality or extend existing functionality. Extensões geralmente podem ser uma fonte de problemas de recursos de memória.Extensions can often be a source of memory resource issues. 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.If you’re experiencing memory resource problems, try disabling extensions one at a time to see how it impacts the scenario or workflow.

    Para desabilitar as extensões, acesse Ferramentas > Extensões e Atualizações e desabilite uma extensão específica.To disable extensions, go to Tools > Extensions and Updates, and disable a particular extension.

    Para desabilitar as extensões, acesse Extensões > Gerenciar Extensões e desabilite uma extensão específica.To disable extensions, go to Extensions > Manage Extensions, and disable a particular extension.

  • Desabilitar modo de mapaDisable map mode

    O modo de mapa exibe linhas de código, em miniatura, na barra de rolagem.Map mode displays lines of code, in miniature, on the scroll bar. O modo de mapa está habilitado por padrão.Map mode is enabled by default.

    Para desabilitar o modo de mapa, vá para ferramentas > Opções > Editor de texto > todos os idiomas > barras de rolagem e, na seção comportamento , desmarque a opção usar modo de mapa para barra de rolagem vertical .To disable map mode, go to Tools > Options > Text Editor > All Languages > Scroll Bars, and in the Behavior section, deselect the Use map mode for vertical scroll bar option.

  • Desabilitar quebra automática de palavraDisable word wrap

    Quebra automática de linha exibe a parte de um longo trecho de código que se estende além da largura atual da janela do editor de código.Word wrap displays the portion of a long line of code that extends beyond the current width of the code editor window. A quebra automática de texto está ativada por padrão.Word wrap is on by default.

    Para desabilitar a quebra automática de texto de um projeto no qual você está trabalhando no momento, vá para Editar > > quebra automática de palavra avançada.To disable word wrap for a project that you are currently working on, go to Edit > Advanced > Word Wrap. (Você pode alternar essa configuração usando os mesmos comandos de menu.)(You can toggle this setting by using the same menu commands.)

    Para desabilitar a quebra automática de palavra para todos os projetos, vá para ferramentas > Opções > > Editor de texto geral > todos os idiomas > geral e, na seção configurações , desmarque a opção quebra automática de palavra .To disable word wrap for all projects, go to Tools > Options > General > Text Editor > All Languages > General, and in the Settings section, deselect the Word wrap option.

  • Desabilitar o XAML DesignerDisable XAML Designer

    O designer XAML é habilitado por padrão, mas só consome recursos se você abrir um arquivo . XAML .The XAML designer is enabled by default, but only consumes resources if you open a .xaml file. Se você trabalha com arquivos XAML, mas não quer usar a funcionalidade do designer, desabilite esse recurso para liberar memória.If you work with XAML files but do not wish to use the designer functionality, disable this feature to free up some memory.

    Para desabilitar designer XAML, vá para ferramentas > Opções > Designer XAML > Habilitar designer XAML e desmarque a opção.To disable XAML Designer, go to Tools > Options > XAML Designer > Enable XAML Designer, and deselect the option.

  • Remover as cargas de trabalhoRemove workloads

    Você pode usar o Instalador do Visual Studio para remover as cargas de trabalho que não são mais usadas.You can use the Visual Studio Installer to remove workloads that are no longer used. 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.This action can streamline the startup and runtime cost by skipping packages and assemblies that aren’t needed anymore.

  • Adicionar arquivos não controlados a local. gitignoreAdd untracked files to local .gitignore

    O Visual Studio executa o comando git git status com arquivos não controlados para fornecer uma experiência direta quando você adiciona novos arquivos a um repositório.Visual Studio runs the Git command git status with untracked files to provide a seamless experience when you add new files to a repository. Quando há um grande número de arquivos não controlados, o git status pode consumir memória extra.When there are a large number of untracked files, git status can consume extra memory. Para ignorar esses arquivos e melhorar o desempenho do git status , você pode adicionar esses arquivos ou pastas ao arquivo. gitignore local.To ignore these files and improve performance of git status, you can add these files or folders to your local .gitignore file. Para acessar o arquivo, vá para configurações do git > > configurações do repositório git.To access the file, go to Git > Settings > Git Repository Settings. Em seguida, na seção arquivos git , clique em Adicionar para criar um arquivo. Gitignore ou clique em Editar se você já tiver um.Then, in the Git files section, click Add to create a .gitignore file, or click Edit if you already have one.

Forçar uma coleta de lixoForce a garbage collection

O CLR usa um sistema de gerenciamento de memória de coleta de lixo.The CLR uses a garbage collection memory management system. Nesse sistema, às vezes a memória é usada pelos objetos que não são mais necessários.In this system, sometimes memory is used by objects that are no longer needed. Esse estado é temporário. O coletor de lixo liberará esta memória com base em seu desempenho e a heurística de uso de recursos.This state is temporary; the garbage collector will release this memory based on its performance and resource usage heuristics. Você pode forçar o CLR a coletar a memória não utilizada usando uma tecla de atalho no Visual Studio.You can force the CLR to collect any unused memory by using a hotkey in Visual Studio. Se houver uma quantidade significativa de lixo aguardando pela coleta e você forçar uma coleta de lixo, você deverá ver o uso de memória da queda de devenv.exe processo no Gerenciador de tarefas.If there is a significant amount of garbage waiting for collection and you force a garbage collection, you should see the memory usage of the devenv.exe process drop in Task Manager. Raramente é necessário usar esse método.It’s rarely necessary to use this method. 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.However, after an expensive operation has completed (such as a full build, debug session, or a solution open event), it can help you determine how much memory is really being used by the process. 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.Because Visual Studio is mixed (managed & native), it’s occasionally possible for the native allocator and the garbage collector to compete for limited memory resources. Em condições de alto uso de memória, pode ser útil forçar o coletor de lixo a ser executado.Under conditions of high memory usage, it may help to force the garbage collector to run.

Para forçar uma coleta de lixo, use a tecla de atalho: Ctrl + ALT + Shift + F12, Ctrl + ALT + Shift + F12 (pressione-a duas vezes).To force a garbage collection, use the hotkey: Ctrl+Alt+Shift+F12, Ctrl+Alt+Shift+F12 (press it twice).

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.If forcing garbage collection reliably makes your scenario work, file a report through the Visual Studio feedback tool as this behavior is likely to be a bug.

Para ver uma descrição detalhada do coletor de lixo CLR, consulte Noções básicas da coleta de lixo.For a detailed description of the CLR garbage collector, see Fundamentals of garbage collection.

Confira tambémSee also