Conseils et astuces pour améliorer les performances de Visual StudioVisual Studio Performance Tips and Tricks

Les recommandations pour améliorer les performances de Visual Studio concernent les cas où la mémoire est insuffisante, ce qui se produit rarement.Visual Studio performance recommendations are intended for low memory situations, which may occur in rare cases. Dans ces situations, vous pouvez optimiser certaines fonctionnalités de Visual Studio que vous n’utilisez peut-être pas.In these situations, you can optimize certain Visual Studio features that you may not be using. Les conseils suivants ne sont pas à interpréter comme des recommandations générales.The following tips are not intended as general recommendations.

Note

Si vous rencontrez des difficultés à utiliser le produit en raison de problèmes de mémoire, faites-le nous savoir à travers l’outil de commentaires.If you’re having difficulty using the product because of memory issues, let us know through the feedback tool.

Optimiser votre environnementOptimize your environment

  • Utiliser un système d’exploitation 64 bitsUse a 64bit OS

    Si vous mettez à niveau votre système d’une version 32 bits de Windows vers une version 64 bits, vous passez de 2 Go à 4 Go la quantité de mémoire virtuelle disponible pour Visual Studio.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. Cela permet à Visual Studio de gérer des charges de travail beaucoup plus importantes, même avec un processus 32 bits.This enables Visual Studio to handle significantly larger workloads even though it is 32-bit process.

    Pour plus d’informations, consultez la page sur les limites de mémoire et l’utilisation de /LARGEADDRESSAWARE sur Windows 64 bits.For more information, see Memory limits and Using /LARGEADDRESSAWARE on 64-bit Windows.

Configurer des solutions et des projetsConfigure solution and projects

Si votre solution est très volumineuse et contient de nombreux projets, vous pouvez apporter les optimisations suivantes :If you have a very large solution with many projects, you may benefit by making the following optimizations:

  • Déchargement de projetsUnload Projects

    Vous pouvez manuellement décharger les projets individuels rarement utilisés à partir de l’Explorateur de solutions à l’aide du menu contextuel.You can manually unload rarely used individual projects from Solution Explorer using the right-click context menu.

  • Refactoriser la solutionRefactor the solution

    Vous pouvez fractionner votre solution en plusieurs petits fichiers solution dans les projets couramment utilisés.You can split your solution into several smaller solution files with commonly used projects. Cette refactorisation doit réduire considérablement l’utilisation de mémoire pour votre flux de travail.This refactoring should significantly reduce memory usage for your workflow. Les solutions plus petites se chargent également plus vite.Smaller solutions also load faster.

Configurer les options de débogageConfigure debugging options

En règle générale, si vous manquez de mémoire pendant le débogage des sessions, vous pouvez optimiser les performances en modifiant un peu la configuration.If you are typically running low on memory during debugging sessions, you can optimize performance by making one or more configuration changes.

  • Activer Uniquement mon codeEnable Just My Code

    L’optimisation la plus simple consiste à activer la fonctionnalité Uniquement mon code, qui charge uniquement des symboles pour votre projet.The simplest optimization is to enable the Just My Code feature, which only loads symbols for your project. L’activation de cette fonctionnalité peut contribuer à économiser considérablement la mémoire pour le débogage des applications managées (.NET).Enabling this feature can result in a significant memory saving for debugging managed applications (.NET). Cette option est déjà activée par défaut dans certains types de projets.This option is already enabled by default in some project types.

    Pour activer Uniquement mon code, choisissez Outils > Options > Débogage > Général, puis sélectionnez Activer Uniquement mon code.To enable Just My Code, choose Tools > Options > Debugging > General, and then select Enable Just My Code.

  • Spécifier les symboles à chargerSpecify symbols to load

    Pour le débogage natif, le chargement des fichiers de symboles (.pdb) consomme beaucoup de mémoire.For native debugging, loading symbol files (.pdb) is expensive in terms of memory resources. Vous pouvez configurer les paramètres de symboles de votre débogueur pour économiser la mémoire.You can configure your debugger symbol settings to conserve memory. En règle générale, vous configurez la solution pour charger uniquement les modules de votre projet.Typically, you configure the solution to only load modules from your project.

    Pour spécifier le chargement des symboles, choisissez Outils > Options > Débogage > Symboles.To specify symbol loading, choose Tools > Options > Debugging > Symbols.

    Définissez les options sur Uniquement les modules spécifiés au lieu de Tous les modules, puis spécifiez les modules que vous voulez charger.Set the options to Only specified modules instead of All modules and then specify which modules you care to load. Pendant le débogage, vous pouvez également cliquer avec le bouton droit sur des modules spécifiques dans la fenêtre Modules pour inclure explicitement un module dans le chargement de symboles.While debugging, you can also right-click specific modules in the Modules window to explicitly include a module in the symbol load. (Pour ouvrir la fenêtre pendant le débogage, choisissez Déboguer > Fenêtres > Modules.)(To open the window while debugging, choose Debug > Windows > Modules.)

    Pour plus d'informations, consultez Présentation des fichiers de symboles.For more information, see Understanding symbol files.

  • Désactiver les outils de diagnosticDisable Diagnostic Tools

    Nous vous recommandons de désactiver le profilage de l’UC après utilisation.It is recommended that you disable CPU profiling after use. Cette fonctionnalité peut consommer de grandes quantités de ressources.This feature can consume large amounts of resources. Une fois que le profilage de l’UC est activé, cet état est conservé dans les sessions de débogage suivantes, il est donc recommandé de le désactiver explicitement une fois terminé.Once CPU profiling is enabled, this state is persisted across subsequent debug sessions, so it’s worth explicitly turning it off when done. Vous pouvez économiser des ressources en désactivant les outils de diagnostic pendant le débogage si vous n’avez pas besoin des fonctionnalités fournies.You may save some resources by disabling the diagnostic tools while debugging if you do not need the provided features.

    Pour désactiver les outils de diagnostic, démarrez une session de débogage, choisissez Outils > Options > Activer les outils de diagnostic et décochez l’option.To disable the Diagnostic Tools, start a debugging session, choose Tools > Options > Enable Diagnostic Tools, and deselect the option.

    Pour plus d’informations, consultez Outils de profilage.For more information, see Profiling Tools.

Désactiver des outils et des extensionsDisable tools and extensions

Certains outils ou extensions peuvent être désactivés pour améliorer les performances.Some tools or extensions may to turned off to improve performance.

Conseil

Vous pouvez souvent isoler les problèmes de performances en désactivant une par une les extensions et en revérifiant les performances.You can often isolate performance issues by turning off extensions one at a time and rechecking performance.

Services de langage gérés (Roslyn)Managed Language Services (Roslyn)

Pour plus d’informations sur les performances de « Roslyn » (.NET Compiler Platform), consultez Performance considerations for large solutions.For information about .NET Compiler Platform ("Roslyn") performance considerations, see Performance considerations for large solutions.

  • Désactiver l’analyse complète de la solutionDisable Full Solution Analysis

    Visual Studio analyse l’ensemble de votre solution afin d’offrir une expérience complète sur les erreurs avant d’appeler une génération.Visual Studio performs analysis on your entire solution in order to provide a rich experience about errors before invoking a build. Cette fonctionnalité est utile pour identifier les erreurs dès que possible.This feature is useful to identify errors as soon as possible. Toutefois, pour les solutions très volumineuses, cette fonctionnalité peut consommer des ressources de mémoire considérables.However, for very large solutions, this feature can consume significant memory resources. Si vous rencontrez des problèmes de mémoire ou du même type, vous pouvez désactiver cette expérience pour libérer ces ressources.If you’re experiencing memory pressure or similar issues, you can disable this experience to free up these resources. Par défaut, cette option est activée pour Visual Basic et désactivée pour C#.By default, this option is enabled for Visual Basic and disabled for C#.

    Pour désactiver Analyse complète de la solution, choisissez Outils > Options > Éditeur de texte > <Visual Basic ou C#>.To disable Full Solution Analysis, choose Tools > Options > Text Editor > <Visual Basic or C#>. Ensuite, choisissez Avancé et décochez Activer l’analyse complète de la solution.Then choose Advanced and deselect Enable full solution analysis.

  • Désactiver CodeLensDisable CodeLens

    Visual Studio effectue une tâche Rechercher toutes les références sur chaque méthode qui s’affiche.Visual Studio performs a Find All References task on each method as it is displayed. CodeLens fournit des fonctionnalités comme l’affichage en ligne du nombre de références.CodeLens provides features such as the inline display of the number of references. Le travail est exécuté dans un processus séparé (par exemple, ServiceHub.RoslynCodeAnalysisService32).The work is performed in a separate process (for example, ServiceHub.RoslynCodeAnalysisService32). Dans les solutions très volumineuses ou sur des systèmes limités en ressources, cette fonctionnalité peut avoir un impact significatif sur les performances, même si elle est exécutée avec une priorité basse.In very large solutions or on resource constrained systems, this feature can have significant impact on performance even though it is run at a low priority. Si ce processus utilise une grande partie de l’UC ou que vous rencontrez des problèmes de mémoire (par exemple, quand vous chargez une solution volumineuse sur un ordinateur de 4 Go), vous pouvez essayer de désactiver cette fonctionnalité pour libérer des ressources.If you’re experiencing high CPU in this process, or memory issues (for example, when loading a large solution on a 4-GB machine), you can try disabling this feature to free up resources.

    Pour désactiver CodeLens, choisissez Outils > Options > Éditeur de texte > Tous les langages > CodeLens et décochez la fonctionnalité.To disable CodeLens, choose Tools > Options > Text Editor > All Languages > CodeLens, and deselect the feature.

    Cette fonctionnalité est disponible dans Visual Studio Enterprise et Visual Studio Professional.This feature is available in Visual Studio Professional and Visual Studio Enterprise.

Autres outils et extensionsOther tools and extensions

  • Désactiver des extensionsDisable Extensions

    Les extensions sont des composants logiciels supplémentaires ajoutés à Visual Studio qui fournissent de nouvelles fonctionnalités ou étendent les fonctionnalités existantes.Extensions are additional software components added to Visual Studio that provide new functionality or extend existing functionality. Les extensions peuvent souvent être une source de problèmes de ressources mémoire.Extensions can often be a source of memory resource issues. Si vous rencontrez des problèmes de ressources mémoire, essayez de désactiver les extensions une par une pour connaître leur impact sur le scénario ou le flux de travail.If you’re experiencing memory resource problems, try disabling extensions one at a time to see how it impacts the scenario or workflow.

    Pour désactiver des extensions, accédez à Outils | Extensions et mises à jour et désactiver une extension en particulier.To disable extensions, go to Tools | Extensions and Updates, and disable a particular extension.

  • Désactiver le concepteur XAMLDisable XAML Designer

    Le concepteur XAML est activé par défaut, mais consomme des ressources uniquement si vous ouvrez un fichier .XAML.The XAML designer is enabled by default, but only consumes resources if you open a .XAML file. Si vous utilisez des fichiers XAML, mais ne voulez pas utiliser les fonctionnalités du concepteur, désactivez cette fonctionnalité pour libérer de la mémoire.If you work with XAML files but do not wish to use the designer functionality, disable this feature to free up some memory.

    Pour désactiver le concepteur XAML, accédez à Outils > Options > Concepteur XAML > Activer le concepteur XAML et décochez l’option.To disable XAML Designer, go to Tools > Options > XAML Designer > Enable XAML Designer, and deselect the option.

  • Supprimer des charges de travailRemove workloads

    Vous pouvez utiliser Visual Studio Installer pour supprimer des charges de travail qui ne sont plus utilisées.You can use the Visual Studio Installer to remove workloads that are no longer used. Cette action permet de rationaliser le coût du démarrage et de l’exécution en ignorant les packages et les assemblys qui ne sont plus nécessaires.This action can streamline the startup and runtime cost by skipping packages and assemblies that aren’t needed anymore.

Forcer une opération de garbage collectionForce a garbage collection

Le CLR utilise un système de gestion de mémoire garbage collection.The CLR uses a garbage collection memory management system. Dans ce système, la mémoire est parfois utilisée par des objets qui ne sont plus nécessaires.In this system, sometimes memory is used by objects that are no longer needed. Cet état est temporaire. Le récupérateur de mémoire libère cette mémoire en fonction de ses méthodes heuristiques en matière d’utilisation des ressources et de performances.This state is temporary; the garbage collector will release this memory based on its performance and resource usage heuristics. Vous pouvez obliger le CLR à collecter la mémoire inutilisée à l’aide d’un raccourci clavier dans Visual Studio.You can force the CLR to collect any unused memory by using a hotkey in Visual Studio. Si une quantité importante de mémoire est en attente de collecte et que vous forcez une opération de garbage collection, vous devez voir chuter l’utilisation de la mémoire par le processus devenv.exe dans le Gestionnaire des tâches.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. Cette méthode est rarement nécessaire.It’s rarely necessary to use this method. Toutefois, quand une opération ayant consommé beaucoup de ressources se termine (par exemple, une génération complète, une session de débogage ou un événement d’ouverture de solution), elle peut vous aider à déterminer la quantité de mémoire qui est réellement utilisée par le processus.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. Parce que Visual Studio est mixte (à la fois managé et natif), il est parfois possible que l’allocateur natif et le récupérateur de mémoire entrent en concurrence pour utiliser des ressources mémoire limitées.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. Dans les situations d’utilisation importante de la mémoire, il peut être utile de forcer l’exécution du récupérateur de mémoire.Under conditions of high memory usage, it may help to force the garbage collector to run.

Pour forcer une opération de garbage collection, utilisez la touche de raccourci : Ctrl + Alt + Maj + F12, Ctrl + Alt + Maj + F12 (appuyez dessus deux fois).To force a garbage collection, use the hotkey: Ctrl+Alt+Shift+F12, Ctrl+Alt+Shift+F12 (press it twice).

Si le forçage de l’opération de garbage collection permet à votre scénario de fonctionner de manière fiable, envoyez un rapport à travers l’outil de commentaires de Visual Studio, car ce comportement est susceptible d’être un bogue.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.

Pour obtenir une description détaillée du récupérateur de mémoire CLR, consultez Fundamental of Garbage Collection (Concepts fondamentaux de l’opération de garbage collection).For a detailed description of the CLR garbage collector, see Fundamental of Garbage Collection.

Voir aussiSee also

IDE Visual StudioVisual Studio IDE