2010-03-07 6 views
2

C'est une question un peu vague, mais y a-t-il quelque chose que je peux faire à propos de Visual Studio ralentissant une application? Si j'exécute les exécutables en dehors de Visual Studio, il fonctionne à une vitesse très acceptable. Si je l'exécute dans Visual Studio avec le débogueur activé, il tourne presque 200 fois plus lentement. J'ai essayé de désinstaller et de réinstaller le studio visuel en vain. J'ai enlevé tous mes plugins (fourmis & resharper) et toujours rien. J'ai couru le projet dans un studio visuel sur un autre ordinateur et la vitesse était normale. Que puis-je faire pour résoudre cela? Cela semble s'être passé récemment, mais potentiellement graduellement.Visual Studio ralentissant l'application

Mise à jour: Je l'ai couru maintenant dans d'autres studios visuels, et le ralentissement maintient. Ma seule conclusion est la façon dont Im allouer de la mémoire dans les vitesses que je suis dans l'application provoque le débogueur à ralentir les choses d'une manière ou d'une autre. Quelqu'un a déjà une expérience dans ce domaine?

+0

virus scanner? . –

+0

chargement et déchargement beaucoup dll? Plus lent globalement ou tout simplement un temps de démarrage massivement plus lent? –

+0

Votre application supprime-t-elle beaucoup de messages de débogage? Si oui, cela pourrait être pourquoi. –

Répondre

2

En général, le débogueur Visual Studio ne ralentit pas les choses. Cela doit être quelque chose de spécifique à votre application. Par exemple, il y a une question récente sur SO de la part de quelqu'un qui reçoit une exception OutOfMemoryException lors du débogage mais pas lors d'une exécution en dehors du débogueur. Il semble que cela soit dû à la manière dont il alloue la mémoire - la technique est sensible au nombre d'assemblys chargés en mémoire. La plupart des programmes ne seraient pas sensibles à cet effet passif du débogueur. Peut-être que vous souffrez également d'un effet lié au débogueur, mais pas complètement la "faute" du débogueur.


Mitch Blé a suggéré que vous utilisez un scanner de virus. Cela m'a rappelé un logiciel similaire qui a pris en charge les assemblages de chargement et de déchargement de Visual Studio. C'était un morceau de logiciel de VPN qui a fourni «la sécurité de point final». Il était destiné à vérifier quels programmes vous étiez en cours d'exécution lors de la connexion au VPN et à vous assurer qu'ils respectaient la politique de sécurité. Cela signifiait être informé de chaque assemblage chargé. Visual Studio charge et décharge un grand nombre d'assemblages. Ce logiciel VPN était tellement intéressé par le fait qu'il a causé un BSOD - la seule fois où j'ai vu une application provoquer un BSOD - parce qu'il installait un filtre de système de fichiers ou autre, et était notifié en mode Kernel. Cela plus un bug de quelque sorte était suffisant pour faire tomber le système.

Donc, en général, cherchez un logiciel qui se soucie de ce qui fonctionne sur votre ordinateur. Peut-être "sécurité des terminaux", peut-être un scanner de virus, peut-être un indexeur de recherche, ou autre chose.

3

Dessinez-vous des symboles d'un serveur de symboles? C'est une cause fréquente de ralentissement.

Vérifiez _NT_SYMBOL_PATH si elle est définie, ou vos options de débogage si vous utilisez VS 2008 +

+0

Possible. Outils + Options, Débogage + Symboles. –

4

Les exceptions sont très coûteux lors de l'exécution dans le débogueur et peut ralentir l'application si beaucoup sont jetés et pris. Jetez un oeil à la fenêtre de sortie de Visual Studio où vous pouvez voir les exceptions levées.

+0

Les exceptions sont la première cause de ralentissement dans le débogueur que j'ai vu. Allez dans la boîte de dialogue Exceptions (sur le débogage) et obtenez Visual Studio pour interrompre toutes les exceptions, pas seulement celles qui ne sont pas gérées. –

+0

J'ai eu un problème similaire, où l'application était très lente lors du débogage, mais a fonctionné comme un charme sans débogage. Il s'est avéré que le contrôle de grille 'devexpress' a avalé beaucoup de' FormatException'. Est passé de 35 secondes à 1 seconde de rendu de la grille en mode débogage après correction des erreurs. – scheien

0

Le débogueur VS ajoute à votre code des commandes supplémentaires afin de permettre toutes les fonctionnalités qu'il apporte. L'inconvénient peut ralentir votre application. C'est peut-être la raison pour laquelle votre application fonctionne correctement lorsque vous exécutez l'exécutable sur un autre ordinateur.

Ensuite, c'est un problème qui ne devrait pas vous déranger, car la version de l'application est importante - qui se soucie des performances de la version de débogage si la version finale fonctionne bien.

+1

si les performances du débogueur vous ralentissent au point d'affecter votre productivité de manière significative, alors c'est un problème dont vous devez vous soucier. –

+0

est d'accord avec @SamHolder. J'ai une application WPF qui se bloque en mode débogage en raison d'un bogue où je définis l'ImageSource d'un contrôle d'image, et quand cette valeur est une chaîne vide, ou un chemin vers un assembly indisponible, le débogueur se bloque pour 10-20 secondes en fin de compte causer mon application à ramper et l'audio que je joue (dans l'application) pour être agité et l'application est presque ne répond pas. En mode de libération, cela fonctionne bien. Donc je dois diagnostiquer le problème et corriger le ralentissement parce que je ne peux pas développer l'application autrement. – cod3monk3y

2

Le problème est que Windows tombe dans un segment de débogage spécial, s'il détecte que votre programme s'exécute sous un débogueur. Cela semble se produire au niveau du système d'exploitation et est indépendant de tous les paramètres du mode Déboguer/Libérer pour votre compilation.

Vous pouvez contourner cette « fonction » en définissant une variable d'environnement: _NO_DEBUG_HEAP = 1

Cette même question me conduire a été noix pendant un certain temps; Aujourd'hui, j'ai trouvé ce qui suit, d'où ce poste est dérivé: http://blogs.msdn.com/b/larryosterman/archive/2008/09/03/anatomy-of-a-heisenbug.aspx

+0

Intéressant! Merci – Dested