Conseils et astuces sur les performances dans 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 via l’outil de commentaires.If you’re having difficulty using the product because of memory issues, let us know through the feedback tool.

Utiliser un système d’exploitation 64 bitsUse a 64-bit 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 Limites de mémoire et Use /LARGEADDRESSAWARE on 64-bit Windows.For more information, see Memory limits and Use /LARGEADDRESSAWARE on 64-bit Windows.

Désactiver la restauration automatique de fichiersDisable automatic file restore

Visual Studio rouvre automatiquement les documents qui ont été laissés ouverts dans la session précédente.Visual Studio automatically reopens documents that were left open in the previous session. Cela peut prolonger la durée nécessaire au chargement d’une solution de 30 % ou plus, en fonction du type de projet et des documents en cours d’ouverture.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. Des concepteurs tels que Windows Forms et XAML, ainsi que certains fichiers JavaScript et typescript, peuvent être lents à ouvrir.Designers like Windows Forms and XAML, and some JavaScript and typescript files, can be slow to open.

Visual Studio affiche un avertissement dans une barre jaune quand la restauration automatique de documents ralentit de manière significative le chargement d’une solution.Visual Studio notifies you in a yellow bar when automatic document restore is causing a solution to load significantly slower. Vous pouvez désactiver la réouverture automatique des fichiers en effectuant les étapes suivantes :You can disable automatic file reopening by following these steps:

  1. Sélectionnez Outils > Options pour ouvrir la boîte de dialogue Options.Select Tools > Options to open the Options dialog box.

  2. Dans la page Projets et solutions > Général, désactivez l’option Rouvrir les documents au chargement de la solution.On the Projects and Solution > General page, deselect Reopen documents on solution load.

Si vous désactivez la restauration automatique de fichiers, un moyen rapide de naviguer jusqu’aux fichiers que vous souhaitez ouvrir est d’utiliser l’option Atteindre.If you disable automatic file restore, a quick way to navigate to files you want to open is by using Go To. Sélectionnez Edition > Atteindre > Atteindre tout, ou appuyez sur Ctrl+T.Select Edit > Go To > Go To All, or press Ctrl+T.

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 ressources 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 Understand 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ésélectionnez 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 can be 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.

Service de langage géré (Roslyn)Managed language service (Roslyn)

Pour plus d’informations sur les performances de .NET Compiler Platform (« Roslyn »), 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 volumineuses, cette fonctionnalité peut consommer des ressources de mémoire considérables.However, for 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, puis sélectionnez Visual Basic ou C#.To disable Full Solution Analysis, choose Tools > Options > Text Editor, then select either Visual Basic or C#. Choisissez Avancé et décochez la case Activer l’analyse complète de la solution.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 distinct, tel que ServiceHub.RoslynCodeAnalysisService32.The work is performed in a separate process such as ServiceHub.RoslynCodeAnalysisService32. Dans les solutions volumineuses ou sur des systèmes limités en ressources, cette fonctionnalité peut avoir un impact significatif sur les performances.In large solutions, or on resource-constrained systems, this feature can have a significant impact on performance. Si vous rencontrez des problèmes de mémoire (par exemple quand vous chargez une solution volumineuse sur un ordinateur de 4 Go) ou si ce processus utilise l’UC de manière intensive, vous pouvez désactiver CodeLens afin de libérer des ressources.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.

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

    Note

    CodeLens est disponible dans les éditions Professional et Enterprise de Visual Studio.CodeLens is available in the Professional and Enterprise editions of Visual Studio.

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ésactivez une extension particulière.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 seulement 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ésélectionnez 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 nettoyage 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 Concepts fondamentaux de l’opération de garbage collection.For a detailed description of the CLR garbage collector, see Fundamentals of garbage collection.

Voir aussiSee also