Problème de débogage lent dans Visual Studio

87

Dans mon instance Visual Studio, même si je viens d'écrire une seule ligne de retour dans une application console C #, cela me prendra une minute après avoir appuyé sur F5 pour exécuter le code réel (je veux dire le temps qu'il faut pour s'arrêter sur l'instruction de retour unique après en appuyant sur F5- J'ai défini un point d'arrêt sur l'instruction return dans lemain fonction). Qu'est-ce qui ne va pas? Existe-t-il une liste de contrôle?

J'utilise l'édition VSTS de Visual Studio 2008 et le débogage sur Windows Server 2003 x64.

George2
la source
2
Juste pour être sûr ... De combien de mémoire disposez-vous lorsque vous essayez d'exécuter le code? VS est un porc de mémoire de mon expérience ...
RSolberg
1
Quel est votre matériel? Visual Studio est très gourmand en disque et en CPU, donc avoir une machine à petit budget manquera de performances.
William Holroyd
1
Avoir> 2-3 points d'arrêt conditionnels est mal géré par VS ...
Simon Buchan
J'ai une mémoire 4G et aucun autre processus ne fonctionne en même temps. Je viens de redémarrer ma machine plusieurs fois et le même symptôme. Je n'ai pas rencontré de tels problèmes une semaine auparavant. D'autres idées?
George2
2
Ils sont tous répertoriés dans Debug-> Windows-> Breakpoints (Ctrl-Alt-B). Mais vous sauriez si vous en avez fait ...
Simon Buchan

Réponses:

149

Vous devrez peut-être supprimer tous vos points d'arrêt --- notez que vous devez cliquer sur le bouton "Supprimer tous les points d'arrêt" (ou utiliser Ctrl+ Shift+ F9), PAS simplement les supprimer un par un. Si Visual Studio a modifié les paramètres de votre solution, ces derniers ne fonctionneront pas. Vous devrez peut-être d'abord ajouter un point d'arrêt pour que cela fonctionne (intelligent, hein?).

Si le pire arrive au pire, vous devrez peut-être supprimer votre .suofichier et laisser Visual Studio en démarrer un nouveau à partir de zéro. Notez que vous perdrez cependant les paramètres de configuration de votre solution personnelle (uniquement pour cette solution, pas pour les autres). Toutefois, vous souhaiterez peut-être déplacer / renommer le fichier temporairement jusqu'à ce que vous déterminiez si c'est le problème ou non; de cette façon, vous pouvez toujours le reculer. J'ai vu que certaines ressources en ligne recommandent également de supprimer (déplacer / renommer) le .ncbfichier.

zweiterlinde
la source
2
Salut, zweiterlinde. Je trouve que le goulot d'étranglement doit concerner le réseau. Lorsque je branche le câble réseau, les performances de débogage sont très bonnes. Avez-vous des idées sur pourquoi? et comment évaluer davantage?
George2
la suppression d'un fichier .suo de 14 Mo a fonctionné pour moi :) c'est maintenant un petit 150 Ko. Un problème est survenu après la mise à niveau de VS2010 Pro vers Ultimate
GreyCloud
+1. Merci beaucoup, cela a fonctionné). Mon VS 2010 a pris 2 minutes pour démarrer un projet sur un poste de travail. Huh. Quel bug ....
Arsen Zahray
J'ai également supprimé le fichier .suo, mais je l'ai fait pendant que Visual Studio était en cours d'exécution. Lorsque j'ai redémarré Visual Studio, il a à nouveau attaché le débogueur très rapidement, et il semble qu'il a conservé la plupart de mes paramètres.
coincé le
+1 Merci beaucoup, vraiment. Donc, dans mon cas, la suppression du fichier suo a parfaitement fonctionné pour moi.
Dean Seo
26

J'ai déjà vu cela. Essayez de supprimer tous vos points d'arrêt, puis définissez ceux que vous souhaitez. Hit F5. Est-ce plus rapide maintenant?

Je viens de remarquer que vous avez mentionné la configuration de la fonctionnalité de débogage de la source .NET. Essayez de désactiver cela. Votre connectivité réseau au serveur source de Microsoft peut être lente. Désactivez également toute connectivité de serveur de symboles dans le menu OutilsOptionsDébogageSymboles .

Essayez également de désactiver "Activer l'évaluation des propriétés et autres appels de fonction implicites" dans le menu OutilsOptionsDébogageGénéral .

m-sharp
la source
1
Dans ma fenêtre de points d'arrêt, il n'y en a qu'un sur l'instruction return de ma fonction Main. D'autres listes de contrôle?
George2
1
Ajout de plus de choses à essayer. J'espère que ça aide.
m-sharp
J'ai supprimé le seul point d'arrêt sur l'instruction de retour de ma fonction Main, mais toujours très lent à démarrer l'application et à s'arrêter, cela prend environ 1 minute. D'autres idées?
George2
Voici une autre idée pour isoler votre problème. Essayez de déconnecter votre câble réseau, redémarrez Visual Studio et appuyez sur F5 sur votre projet. Cela change-t-il quelque chose?
m-sharp
1
Essayez de désactiver cela, votre connectivité réseau au serveur source de Microsoft peut être lente. Désactivez également la connectivité du serveur de symboles dans Outils> Options> Débogage> Symboles - Cela a fonctionné pour moi
Yousuf Azad
19

Ou supprimez votre fichier .suo qui se trouve à côté de votre fichier de solution (.sln). Cela a résolu un problème que j'avais avec les sessions de débogage prenant beaucoup de temps pour démarrer et s'arrêter.

Franc
la source
+1 pour sauver ma santé mentale (et me sauver une réinstallation de VS2010). Merci!
Chuck Dee
Il s'agit également de la solution référencée sur MSDN: social.msdn.microsoft.com/Forums/vstudio/en-US
...
Confirmer cela s'applique également aux anciennes versions 2003.NET et 2005. Une application avait quelques points d'arrêt et fonctionnait correctement. Ajout de quelques points d'arrêt supplémentaires ... Utilisation du processeur à 100% et scintillement terrible dans VS lors du débogage. VS fermé, supprimé le .suo, ré-ouvert et le débogage est à nouveau rapide.
AlainD
C'est la solution que je trouve qui fonctionne toujours chaque fois que VS devient trop lent en termes de débogage
Graviton
Ou renommez le fichier .suo avant de le supprimer afin qu'il soit possible de revenir à l'état précédent.
Peter Mortensen
12

J'ai eu ce problème. Après avoir essayé tous les conseils énumérés et supprimé toutes les extensions Visual Studio, nous avons finalement compris qu'IntelliTrace était en quelque sorte activé. Désactiver cela a tout résolu.

Guide pratique pour activer et désactiver IntelliTrace

Kevin DiTraglia
la source
Cela résout également le problème si vous avez un projet qui utilise SharpDX - cela a fonctionné pour moi et maintenant les performances graphiques reviennent à la normale.
komorra
Dans le cas particulier de l'utilisation de SharpDX et de Debug-Build, j'ai eu le même effet, mais c'était juste le débogage DX activé. Si ce n'est pas nécessaire, recherchez "DeviceCreationFlags.Debug" et désactivez-le
thewhiteambit
Dans VS2015, j'ai décoché «Activer Intellitrace» et j'ai cliqué sur OK. Plus tard, j'ai découvert que vous deviez passer de «Intellitrace et informations d'appel» à «Événements Intelllitrace uniquement»; si vous ne le faites pas, «Activer Intellitrace» RESTE VÉRIFIÉ!
smirkingman
Résolu les problèmes! (ne croyez pas au commentaire MS: "Cette rubrique s'applique uniquement à Visual Studio 2010 Ultimate."). J'ai l'édition gratuite de 2017 et cela accélère considérablement le débogage!
marsh-wiggle
IntelliTrace dans VS 2017 et versions ultérieures est une fonctionnalité réservée aux entreprises, cela n'a donc pas résolu mon problème (car je n'avais que l'édition VS 2017 Pro).
FoxDeploy le
6

Avez-vous défini de nombreux points d'arrêt? Ceux-ci peuvent vraiment ralentir le temps de démarrage. Chaque fois qu'un nouveau module est chargé dans l'espace d'adressage du processus, ils doivent tous être vérifiés pour voir s'ils sont valides.

1800 INFORMATIONS
la source
Je n'ai qu'un seul point d'arrêt dans mon code de mode utilisateur. Mais je me suis souvenu une semaine avant d'utiliser la fonctionnalité de débogage source de Visual Studio pour définir un point de rupture dans le code interne .Net. Un moyen de vérifier tous les points d'arrêt, y compris ceux internes .Net que j'ai définis?
George2
Aucune, mais encore lente, d'autres idées?
George2
pas vraiment, il semble que votre matériel devrait être en bon état et tous les autres éléments que j'aurais essayé semblent avoir été cochés par d'autres commentateurs. À ce stade, j'essaierais probablement de réinstaller Visual Studio - peut-être que quelque chose ne va pas avec l'installation
1800 INFORMATIONS
J'ai réinstallé dans un autre répertoire mais toujours le même symptôme. D'autres idées?
George2
6

Allez dans le menu OutilsOptionsDébogueurSymboles et vérifiez si vous avez défini des symboles publics ou des chemins réseau UNC . Vérifiez également le menu Outils * → OptionsDébogueurGénéral pour voir si vous avez défini le serveur source.

Tous ces éléments peuvent affecter le débogage en fonction de la lenteur du réseau ou des serveurs indisponibles. Le temps d'attente de 5 minutes correspond aux délais d'expiration du réseau.

Si rien dans les options n'est défini, vérifiez si la variable d'environnement _NT_SYMBOL_PATH est définie.

Steve Steiner
la source
Merci, c'était pour moi. Je chargeais occasionnellement 1 ou 2 fichiers de symboles dans la fenêtre Modules, pointant vers des symboles de nos builds via des chemins UNC, ou moins fréquemment, pointant vers des machines virtuelles qui n'existent plus. Je n'ai pas réalisé qu'il a enregistré tous ces chemins dans les paramètres du débogueur / symboles.
brian
6

Mon collègue avait un Visual Studio qui répondait très lentement et il fallait littéralement quelques minutes pour effectuer une étape lors du débogage.

La cause principale s'est avérée être un programme antivirus (Threatfire) qui est devenu fou pendant que Visual Studio était en cours d'exécution. Tuer son processus a immédiatement tout arrangé.

mafu
la source
J'ai eu une expérience de débogage Web horrible au travail jusqu'à ce que je désactive l'antivirus ESET. Après avoir frappé F5, mon temps de réponse est passé de 2-3 minutes à 2-3 secondes.
James Hulse
1
Suspendre ThreatFire pendant un certain temps m'a également beaucoup aidé - merci! (Éteindre temporairement Avast! A aidé un peu aussi, mais pas tant que ça.)
Jon Coombs
Malwarebytes était la cause de mon problème. Le quitter a corrigé la lenteur.
Ben Rubin
J'utilise également Malwarebytes ... Après l'avoir quitté, le débogage de VisualStudio est beaucoup plus rapide. Le démarrage du débogage était de 15 secondes auparavant, maintenant il est à 2 secondes) .. Merci!
BlueDev
5

Dans mon cas, la modification du symbole de débogage "Charger automatiquement le symbole pour" l' option de "Tous les modules" à "Seuls les modules spécifiés" a résolu le problème. Vous pouvez modifier cette option dans le menu OutilsOptionsDébogageSymboles .

cahit beyaz
la source
3

Une cause différente plus ... Comment trouver le problème

Pour moi, c'était l'option ShowOtherThreadIpMarkers . Une valeur de 1 rend Visual Studio (2010) insupportablement lent (3 à 5 secondes pour chaque étape de débogage. Avec une valeur de 0, il est à nouveau rapide.

Quelle est cette option? Je n'ai aucune idée. Je n'ai pas pu le trouver via l'interface utilisateur de Visual Studio. J'ai décoché toutes les options de débogage possibles et rien n'a fonctionné.

Je suis donc allé dans les paramètres d' importation / exportation et j'ai chargé mes anciens paramètres que j'avais précédemment enregistrés en arrière jusqu'à ce que Visual Studio soit à nouveau rapide, puis j'ai comparé les fichiers vssettings ..., etc., etc.

Je voudrais remarquer que si vous chargez les paramètres alors que vous êtes en mode débogage arrêté sur un point d'arrêt, ils deviennent effectifs immédiatement. Vous n'avez pas besoin d'arrêter le débogueur et de redémarrer.

marcelloptr
la source
+1 Merci, c'était aussi mon problème avec une application Web C # dans VS2015. J'ai désactivé l'option "Afficher les threads dans la source" dans la barre d'outils pendant le débogage et le problème a disparu. Si l'option n'est pas disponible dans la barre d'outils, vous pouvez la trouver en cliquant avec le bouton droit sur n'importe quel thread dans la fenêtre Threads.
Groo
2

D'après le blog de ScottGu lié par Travis: "Un autre problème de performance dont j'ai entendu parler récemment est un problème que quelques personnes ont signalé avoir rencontré avec le complément de la barre d'outils Google. Pour une raison quelconque, cela peut parfois entraîner de longs retards lors de la connexion du visuel Débogueur Studio dans le navigateur. Si vous constatez de longs délais de chargement de votre application Web et que la barre d'outils Google (ou d'autres barres d'outils) est installée, vous pouvez essayer de les désinstaller pour voir si cela est la cause du problème. "

Chat Zimmermann
la source
La barre d'outils Google est-elle installée? Même dire non est utile pour les futurs lecteurs de cette question.
Cat Zimmermann le
J'ai ouvert IE et aucune barre d'outils n'est affichée, cela signifie-t-il que je n'ai pas de barre d'outils installée et que je n'aurai pas d'impact sur Visual Studio? :-)
George2
2
Sensationnel. Je pensais que cela n'avait aucun sens, mais je viens de désinstaller et ma machine est revenue en mode utilisable
orellabac
1
Un autre plugin qui est blâmé est LastPass. Est-ce uniquement un problème avec IE ou un plugin dans n'importe quel navigateur peut-il affecter les choses?
Denise Skidmore
1
@DeniseSkidmore Vous êtes incroyable, j'aimerais pouvoir voter plus d'une fois. Toutes ces autres solutions et rien n'aidait ... alors j'ai lu votre commentaire, désactivé le complément LastPass IE et du coup il est à nouveau rapide. J'ai confirmé que c'était le problème en réactivant le complément et il a ralenti. MERCI!!!!
Lews Therin
2

L'exécution sous le débogueur pour moi était environ 10 fois plus lente que l'exécution sans débogage.

Après avoir essayé toutes les solutions suggérées ici, j'ai parcouru tous les paramètres du débogueur et activé / désactivé pour voir si cela faisait une différence.

Pour moi, il est apparu que la désactivation de l' optimisation de la charge JIT Suppress le module dans les paramètres de débogage massivement choses se sont améliorées.

Ben Hughes
la source
1

Assurez-vous de ne pas avoir de mappages réseau obsolètes vers des serveurs qui n'existent plus (les délais d'expiration du réseau vous tueront). Ou utilisez quelque chose comme Process Monitor pour voir si un réseau (ou une autre erreur de fichier) semble bloquer pendant une longue période.

Michael Burr
la source
Process Monitor est un outil sympa! :-) Mais quelle option de Process Monitor pourrait être utilisée pour voir "si un réseau (ou une autre erreur de fichier) semble bloquer pendant une longue période"?
George2
Je rechercherais des éléments tels que des erreurs lors de la tentative d'ouverture d'un fichier ou la durée des opérations (n'oubliez pas qu'il existe des éléments de données que vous pourriez ne pas voir, tels que `` Durée '' que vous pouvez sélectionner dans Options / Sélectionner les colonnes ...) . Utilisez les filtres et les surlignages à votre avantage.
Michael Burr le
Salut Michael Burr, dans Process Monitor, vous voulez dire surveiller le processus VSTS lui-même ou surveiller tous les processus sur la machine?
George2
Je commencerais certainement par VSTS (devenv.exe) ou vous seriez inondé d'informations qui ne sont presque certainement pas utiles.
Michael Burr
1
Vous voudrez utiliser "Process Monitor" et non "Process Explorer". Voir technet.microsoft.com/en-us/sysinternals/bb896645.aspx . Les 2 utilitaires ont des fonctions différentes. Procmon suivra les opérations sur les fichiers et le registre. Procexp est un utilitaire pratique mais ne fournit pas ce type de traçage.
Michael Burr
1

Utilisez-vous un serveur de symboles pour télécharger des symboles pour les fichiers DLL Windows?

Si tel est le cas, désactivez cela car cela peut prendre un certain temps, mais je ne m'attendrais pas à ce que cela entraîne de longs retards dans une application console de base.

Menu OutilsOptionsDébogageSymboles .

Michael Prewecki
la source
Le contenu est vide dans Outils> Options> Débogage> Symboles. D'autres idées?
George2
1

Je sais que c'est un vieux sujet, mais pour ce que ça vaut ...

J'ai constaté que si une fenêtre Internet Explorer distincte était ouverte pendant longtemps, le débogage pouvait prendre jusqu'à une minute. Fermez toutes les fenêtres d'Internet Explorer et le débogage démarre immédiatement.

Robbie
la source
1

Dans mon cas, la barre d'outils Google ralentissait mon débogage.

gplus_notifications_gadget.html continuait juste à surcharger le débogueur. Je voulais garder la barre d'outils Google parce que je l'utilise régulièrement, j'ai donc simplement désactivé le bouton de notification G + (le petit bouton à côté du bouton de profil). C'est heureux maintenant.

wcloister
la source
1

J'ai eu le même problème dans Visual Studio 2010, avec l'entrée du code extrêmement lente (entre 3 et 10 secondes). Cependant, aucune des modifications des paramètres ci-dessus n'a fait l'affaire.

J'ai finalement trouvé la solution ultime, qui fonctionnerait dans tous les problèmes de publication ci-dessus: réinitialisez tous vos paramètres, comme décrit ici (essentiellement le menu OutilsImporter et exporter les paramètres , Réinitialiser tous les paramètres , avec l'enregistrement des paramètres existants dans un fichier (pour revenir )).

Vous souhaiterez peut-être d'abord enregistrer une partie particulière de vos paramètres. Par exemple, j'ai d'abord enregistré mon thème de couleur (de type Solarisé), puis je l'ai restauré après la réinitialisation globale.

Spikegee
la source
1

Pour moi, le paramètre qui a tué les performances (Windows 8 se bloque même sauf pour le mouvement de la souris) était de décocher "Arrêter tous les processus lorsqu'un processus est interrompu" dans le menu OptionsDébogageGénéral .

Niels
la source
1

Juste une autre cause de la lenteur de l'expérience de débogage de Visual Studio ...

Il y a longtemps, j'ai permis FusionLogde voir ce qui causait un problème de liaison d'assembly.

Assurez-vous de le désactiver après l'avoir utilisé. Pourquoi? Parce qu'il écrit beaucoup de données de journalisation sur le disque lorsqu'il est activé.

Voici la FusionLogclé du registre de Windows ( regedit.exe):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Changer les ForceLog, LogImmersiveet les LogResourseBindingsvaleurs de 1 (activé) à 0 (désactivé).

Leniel Maccaferri
la source
C'était ce qui m'arrivait. Vous pouvez également désactiver Fusion Log via son interface graphique
Denise Skidmore
Vous pouvez voir si c'est votre problème lors de l'exécution de Process Monitor, vous verrez tous les accès au fichier journal de fusion.
Denise Skidmore
0

J'ai eu ce problème aussi, mais cela n'avait rien à voir avec les points d'arrêt dans mon cas. Ce sont des raccourcis de code que j'ai ajoutés dans la fenêtre des tâches:

http://www.customsoftwareframeworks.com/blog/longwaittimetoinsertoraddalineoftextbuginvisualstudio--tasklistwindow--uniquement lors de l'ajout et de la suppression de lignes

Je suis sûr qu'il existe d'autres façons de voir un problème comme celui-ci, mais il y a un bogue quelque part qui a causé ce problème pour moi ... la suppression de toutes mes options aurait résolu ce problème, mais c'est quelque chose que je ne voulais pas faire. Donc, je l'ai débogué et écrit à ce sujet dans mon blog ... votre problème ressemble au mien.

shawn
la source
Le lien est rompu: "La ressource que vous recherchez a été supprimée, son nom a été modifié ou est temporairement indisponible."
Peter Mortensen
0

Quelque chose qui a fonctionné pour moi est de m'assurer qu'il n'y a pas de points d'arrêt conditionnels. En dehors de cela, j'ai réussi à corriger le débogage lent en redémarrant simplement Visual Studio et en n'ouvrant qu'une seule instance de Visual Studio à la fois.

jjxtra
la source
0

J'ai eu un problème similaire et aucun des autres conseils ne semblait m'aider. J'avais redémarré en vain. J'avais supprimé tous les points d'arrêt, supprimé le fichier .suo, vérifié que les symboles n'étaient pas chargés à partir de sources externes et vérifié qu'aucun chemin n'existait dans l'application qui n'était pas disponible.

Ensuite, j'ai pensé nettoyer la solution. J'ai remarqué dans la fenêtre de sortie que C # IntelliSense a signalé un problème lors du nettoyage:

Un problème est survenu lors de la lecture des métadonnées de '{B0C3592F-F0D1-4B79-BE20-3AD610B07C23}' ('Le système ne trouve pas le fichier spécifié.'). IntelliSense peut ne pas fonctionner correctement tant que la solution n'est pas rechargée.

Dans ce cas, une fois que vous découvrez réellement le message d'erreur, il vous indique exactement comment le résoudre. (Bon travail sur le texte d'erreur, mauvais travail sur la découvrabilité!) J'ai déchargé les projets de la solution, puis les ai rechargés. J'ai ensuite pu exécuter avec succès une solution propre . Cela a fonctionné, et le débogueur a également fonctionné.

Mike L
la source
0

La fermeture de la fenêtre "Autos" a amélioré le débogage pour moi dans Visual Studio 2008 pour une grande solution C ++ native.

Le cacher ne fonctionnera pas. Il doit être fermé.

javs
la source
0

J'ai connu le même ralentissement et la déconnexion du réseau a résolu le problème pour moi, comme l'ont indiqué d'autres commentaires et réponses (mais bien sûr, ce n'est pas une solution idéale).

Pour mon cas, ce simple changement a corrigé ma solution: dans les propriétés du projet sur l'onglet de débogage, j'ai désactivé «Activer le processus d'hébergement de Visual Studio» (j'exécute Visual Studio 2010).

fusionner
la source
-9

Obtenez plus de mémoire et un HD plus rapide. Plus de détails ici .

Tsimon
la source
1
Je ne pense pas que ce soit un problème H / W, puisque mon matériel est une mémoire 4G + 2 CPU (2,33G), est-ce suffisant? BTW: Je n'ai pas souffert de cela une semaine auparavant, donc je pense que cela devrait être des problèmes de configuration?
George2
2
+1 Conseil utile, je ne peux pas croire que les gens votent contre. Bien que la suppression de votre fichier .suo aide 10 fois plus.
Andomar
1
L'OP n'a même pas dit quelles étaient leurs spécifications. Si vous me conseillez, vous me conseilleriez d'obtenir plus de 32 Go de RAM et plus rapidement que mon état solide déjà rapide.
Valamas