Débogage / chargement de Visual Studio très lent

505

Je suis à bout de souffle. Visual Studio est généralement très lent à déboguer ou à charger simplement ("démarrer sans déboguer") mes sites ASP.NET MVC. Pas toujours: au début, les projets se chargeront bien et rapidement, mais une fois qu'ils se chargeront lentement, ils se chargeront toujours lentement après cela. Je pourrais attendre 1-2 minutes ou plus.

Ma configuration:

J'utilise Visual Studio 2012 Express , actuellement, mais j'ai également rencontré le même problème dans Visual Studio 2010 Express. Ma solution est stockée sur un lecteur réseau; en particulier, il s'agit de Mes documents redirigés vers un lecteur réseau, si cela est important. (Cela ne devrait pas. Parfois, mon site se charge très rapidement avec cette configuration.)

Je charge généralement dans Internet Explorer 9, mais le même problème se produit dans Firefox.

Cela peut se produire dans n'importe quel projet ASP.NET MVC sur lequel je travaille, et cela semble tourner autour de l'affichage de modèles, ce que font tous mes projets ASP.NET MVC. Et c'est tout C # et Razor, si cela importait.

Symptômes:

Le système chargera mes symboles des centaines de fois. Fondamentalement, ce qui suit, mais il existe au moins 300 lignes de ce type, chacune avec des fichiers DLL toujours très différents pour les mêmes CSHTML:

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.xighmhow.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_contact.cshtml.22013bb9.cv5hktkf.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.1o77hs8i.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.jja-77mw.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.l_e9ev_s.dll', Symbols loaded.
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_location.cshtml.22013bb9.b4n59gom.dll', Symbols loaded.

Dans ce qui précède, j'ai trois modèles d'affichage: "Contact", "Emplacement" et "StatusCode". Il semble que IIS charge deux fois les symboles pour chaque appel du modèle d'affichage. Ainsi, si j'affiche un tableau de 100 entrées qui appelle ces trois modèles d'affichage, c'est 600 symboles distincts chargés.

Ce n'est pas non plus une opération rapide. Dans les fichiers journaux générés par IIS, il faut environ 200 ms pour charger chaque symbole. Ainsi, des retards super longs.

Ce que j'ai essayé:

  • Version de débogage ou de version, cela n'a pas d'importance.
  • Mettre mon projet sur une implémentation complète d'IIS sur un serveur Web l'exécute très rapidement sans aucun problème.
  • Cassini, IIS Express 7.5 et IIS Express 8.0 ont tous le problème.
  • Supprimer tous les points d'arrêt ne fait rien.
  • Nettoyer la solution ou supprimer le .suo ne fait rien non plus.
  • Si je répare IIS Express, ou supprime le My Docs\IISExpressdossier, ou répare / réinstalle Visual Studio → le problème PEUT disparaître, mais seulement pendant un certain temps, avant qu'il ne revienne immédiatement.

Tout conseil est apprécié.

Pour répondre à plus de questions, oui ma machine a définitivement la puissance. La chose exaspérante est que le même projet, avec RIEN modifié, peut parfois se charger très très rapidement, généralement après avoir réparé IIS Express et supprimé le My Docs\IISExpressdossier. Finalement, "quelque chose" se produit et il ne reste plus que 2 minutes pour charger à nouveau. Ce sur quoi je travaille n'est pas un projet compliqué. Pas de bibliothèques externes ou de dépendances, et mon VS.NET n'a aucun add-on.

Il convient de noter que cette machine dispose de Symantec Endpoint Protection, qui a toujours causé des ravages. Mais sa désactivation pure et simple (il est bon d'être administrateur) n'a pas résolu le problème.

J'ai une théorie à ce stade. Je pense que c'est tout parce que je travaille sur un dossier redirigé sur un partage réseau. Pendant que le débogueur parcourait ses centaines de lignes de "symboles chargés", je m'arrêtai pour voir ce qu'il faisait. C'était dans mon code, chargeant le DisplayTemplate que j'avais. Entrer dans le modèle affiche ceci:

Step into: Stepping over non-user code 'System.Threading.WaitHandle.InternalWaitOne'
Step into: Stepping over non-user code 'System.Threading.WaitHandle.WaitOne'
Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated'
Step into: Stepping over non-user code 'System.CodeDom.Compiler.Executor.ExecWaitWithCapture'
Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch'
Step into: Stepping over non-user code 'Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch'
Step into: Stepping over non-user code 'System.Web.Compilation.AssemblyBuilder.Compile'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.bciuyg14.dll', Symbols loaded.
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.CompileWebFile'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultInternal'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert'
Step into: Stepping over non-user code 'System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.FileExists'
Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.GetPathFromGeneralName'
Step into: Stepping over non-user code 'System.Web.Mvc.VirtualPathProviderViewEngine.FindPartialView'
Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.Find'
Step into: Stepping over non-user code 'System.Web.Mvc.ViewEngineCollection.FindPartialView'
Step into: Stepping over non-user code 'System.Web.Mvc.Html.TemplateHelpers.ActionCacheViewItem.Execute'
'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\b63f8236\6775085d\App_Web_statuscode.cshtml.22013bb9.kwj3uqan.dll', Symbols loaded.
Step into: Stepping over non-user code 'System.RuntimeType.CreateInstanceSlow'
Step into: Stepping over non-user code 'System.Web.Mvc.DependencyResolver.DefaultDependencyResolver.GetService'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerViewEngine.DefaultViewPageActivator.Create'
Step into: Stepping over non-user code 'System.Web.Mvc.BuildManagerCompiledView.Render'

Il semble que Visual Studio recompile mon modèle d'affichage à chaque fois qu'il est appelé, ce qui est à nouveau des centaines de fois. Ma théorie est que Visual Studio compile le fichier, l'enregistre sur le partage réseau, le partage réseau marque alors une nouvelle heure dessus, et Visual Studio pense alors que le fichier a changé et donc Visual Studio le recompile à nouveau. Mais seulement une théorie; Je n'ai vraiment aucune idée.

D'une part, j'ai apparemment des fichiers hors ligne (c'est un ordinateur de bureau dans un bureau; je m'en fiche). Je vais désactiver, redémarrer et réessayer demain.

De plus, le déplacement de mon projet, tel quel, vers le C local: le corrige. Il se charge très rapidement. Mais ce n'est pas idéal dans un environnement de travail. Je perds les versions précédentes, mon code n'est pas sauvegardé du tout, sauf si je le copie manuellement, et il n'est plus partagé avec personne.

Je peux me contenter de le copier d'avant en arrière de C vers le partage réseau, si cela se produit. Il est beaucoup plus ennuyeux d'attendre deux minutes pour chaque chargement de page.

Ber'Zophus
la source
J'ai beaucoup de questions: qu'en est-il de la machine sur laquelle vous l'utilisez? At-il assez de puissance pour ce que vous essayez de faire? Avez-vous des plugins tiers? Quel type d'antivirus avez-vous?
Fickle Panther du
1
Mis à jour ma question avec plus d'informations.
Ber'Zophus
La suppression des fichiers hors connexion ne semblait être la solution. Cela a très bien fonctionné pendant un certain temps, puis le problème est revenu. Mais j'ai une autre réponse possible. Mise à jour de ma solution.
Ber'Zophus
Pour seconder la question antivirus, j'ai eu des problèmes majeurs avec ThreatFire en cours d'exécution. Le désactiver temporairement a accéléré le débogueur pour moi au moins des centaines de fois. Éteindre mon AV principal (Avast!) N'a que légèrement aidé.
Jon Coombs
@JohnSaunders Avez-vous essayé de l'exécuter en mode administrateur?: Stackoverflow.com/questions/36322440/…
Robert Oschler

Réponses:

650

Voici comment j'ai résolu le problème de «chargement lent des symboles» dans Visual Studio 2012:

  • Allez dans Outils -> Options -> Débogage -> Général

  • Cochez la case à côté de "Activer juste mon code".

  • Allez dans Outils -> Options -> Débogage -> Symboles

  • Cliquez sur le bouton "..." et créez / sélectionnez un nouveau dossier quelque part sur votre ordinateur local pour stocker les symboles mis en cache. J'ai nommé le mien "Mise en cache des symboles" et l'ai mis dans Documents -> Visual Studio 2012.

  • Cliquez sur "Charger tous les symboles" et attendez que les symboles soient téléchargés à partir des serveurs de Microsoft, ce qui peut prendre un certain temps. Notez que le bouton Charger tous les symboles n'est disponible que lors du débogage.

  • DÉCOCHEZ la coche à côté de "Microsoft Symbol Servers" pour empêcher Visual Studio d'interroger à distance les serveurs Microsoft.

  • Cliquez sur OK".

Désormais, le chargement des symboles devrait être beaucoup plus rapide.

Notez que si vous apportez des modifications / téléchargements aux assemblys Microsoft, vous devrez peut-être revenir dans la boîte de dialogue Symboles et "Charger tous les symboles" à nouveau.

Zeb Kimmel
la source
31
Pas de solution pour moi, j'ai peur. Ce serait une bonne solution pour ceux qui tournent autour des problèmes avec les symboles Microsoft. Malheureusement pour moi, mon problème semble tourner autour de mes propres symboles. Ces symboles sont déjà mis en cache localement, et pour une raison quelconque, ils ont compilé des centaines de tuiles en une seule page de chargement.
Ber'Zophus
8
merci pour cette astuce un problème que j'ai ici est le bouton charger tous les symboles est désactivé pour moi des idées?
Chris McGrath
14
@ChrisMcGrath essayez ce lien social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/… . Btw merci pour la bonne réponse
Bobby Tables
16
même après avoir suivi vos étapes, le bouton "Charger tous les symboles" est masqué et je ne peux pas cliquer dessus. Qu'est-ce que je devrais faire maintenant? J'utilise VS Express 2012.
Himanshu Aggarwal
86
Voici la solution pour ceux qui ont le bouton Charger tous les symboles désactivés: Le bouton n'est disponible que lors du débogage.
Gwynnbleid1
114

Désactiver intelliTrace a résolu ce problème pour moi.

Dans Visual Studio, Outils -> Options -> IntelliTrace

Décochez ensuite la case "Activer IntelliTrace".

Désactiver IntelliTrace dans Visual Studio 2012

moke
la source
2
J'ai eu ce problème lors de l'exécution d'un de mes tests unitaires. Il a fallu environ 300 secondes avec Intellitrace activé et environ 14 secondes lorsqu'il a été désactivé. Cette solution a vraiment fonctionné pour moi.
Paul Bullivant le
2
Amélioration de mon démarrage de 25 secondes à 6. Je pense que cela a beaucoup aidé parce que j'exécutais beaucoup de mon propre code au démarrage de l'application
James Ellis-Jones
2
Goddamnid ... De 1 min à 10 secondes. Il est sélectionné par défaut dans VS2012 Ultimate. Attention aux mecs
Kevin Cloet
7
Impossible de trouver Intellitrace dans Outils => Options. .. j'ai vsComunity 2015
shireef khatab
8
Dans Visual Studio 2015, Intellitrace existe uniquement dans VS 2015 Enterprise Edition.
HK1
78

Rien de tout cela n'a fonctionné pour moi mais j'ai trouvé un point d'arrêt sur un symbole qui a été supprimé. Il semble que 2010 était suspendu. Pour voir si c'est votre problème, déboguez-> windows-> points d'arrêt.

Saunders, a mentionné qu'il avait vérifié cela, mais cela n'était pas mentionné dans les solutions à ce problème. Peut-être une connaissance commune pour certains, mais pas pour nous tous.

user2144480
la source
5
J'ai commencé à avoir ce problème dans VS2010 d'un coup, et c'était, en effet, l'un de mes points d'arrêt qui le causait. Dès que j'ai effacé mes points d'arrêt, il est redevenu rapide.
David Airapetyan
3
Wow..VS2012 rampait, 5 minutes juste pour construire un projet simple. Effacé tous les points d'arrêt et il s'éclaircit à nouveau rapidement, merci !!
QFDev
1
Après avoir lu ceci et après ce que vous avez dit, j'ai trouvé un point d'arrêt qui a été placé dans le code XML de l'un de mes fichiers d'entité edmx. Vous da homme / femme.
JB06
Merci beaucoup. Cela a résolu mon problème avec des performances très lentes de VS2010.
Vaibhav Patle du
2
Cela a également fonctionné pour un problème de débogage lent que j'avais dans Visual Studio 2015.
purplecat
41

J'ai supprimé le dossier "Fichiers ASP.NET temporaires" et la charge de ma page localhost s'est considérablement améliorée. Voici le chemin ...% temp% \ Fichiers ASP.NET temporaires \

Shaun Kennedy
la source
9
C: \ Users \ {USER_NAME} \ AppData \ Local \ Temp est le chemin et le dossier "AppData" est un dossier caché
Shiva Naru
2
J'ai trouvé 1 Go de vieille merde ici .... supprimez tout et VS fonctionne un peu mieux. :)
RitchieD
29

Avez-vous activé FusionLog?

Mon VisualStudio a été très lent à démarrer, à ouvrir la solution et à charger les symboles lors du démarrage du débogage. C'était lent seulement sur ma machine, mais pas sur d'autres machines.

FusionLog écrit des tonnes de fichiers journaux sur le disque. Le désactiver simplement sur RegEdit a tout résolu, dans mon cas.

Il s'agit de la clé FusionLog sur le registre:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Vérifiez la valeur ForceLog (1 activé, 0 désactivé).

rkawano
la source
1
Uhmmm ... très belle réponse. J'étais sur le même bateau. J'ai également activé FusionLogil y a longtemps et j'ai oublié de le désactiver. Désormais, le débogage de l' ASP.NET MVCapplication est beaucoup plus rapide. Merci Dieu et @rkawano. :)
Leniel Maccaferri
29

J'ai rencontré le même problème et essayé la plupart des résolutions ci-dessus. La simple suppression des fichiers cache et temp finit par fonctionner pour moi.

Essayez de supprimer le contenu de ces deux dossiers:

C:\Users\\{UserName}\AppData\Local\Microsoft\WebsiteCache

et

C:\Users\\{UserName}\AppData\Local\Temp (en particulier les dossiers iisexpress et Temporary ASP.NET Files).

Cela peut être configuré pour se produire automatiquement lors de la connexion à Windows en ajoutant un fichier cmd au C:\Users\\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupdossier avec le contenu suivant:

rmdir C:\Users\\{username}\AppData\Local\Microsoft\WebsiteCache /s /q

rmdir C:\Users\\{username}\AppData\Local\Temp /s /q
aricons
la source
Cela a fonctionné. Le dossier "AppData" est un dossier caché, juste au cas où quelqu'un ne le trouverait pas.
Shiva Naru
3
C'est la bonne! Cela fonctionne si bien que je le fais maintenant automatiquement lorsque je me connecte à Windows: j'ai ajouté un fichier appelé DeleteVisualStudioCache.cmd à C: \ Users \ {nom d'utilisateur} \ AppData \ Roaming \ Microsoft \ Windows \ Menu Démarrer \ Programmes \ Démarrage avec les commandes suivantes: rmdir C: \ Users \ {nom d'utilisateur} \ AppData \ Local \ Microsoft \ WebsiteCache / s / q rmdir C: \ Users \ {nom d'utilisateur} \ AppData \ Local \ Temp / s / q pause
Graham Laight
25

Je pense que je peux enfin au moins connaître la cause, mais pas la raison. Lorsque le problème a recommencé à se produire, j'ai remarqué une tonne de processus "conhost.exe" devenus orphelins. Je fermerais Visual Studio et ils resteraient ouverts. La fin de la tâche sur chacun d'eux a finalement résolu le problème de manière fiable. [j'espère]

(Notez simplement que conhost.exe n'est pas un processus Visual Studio bien que Visual Studio l'utilise. Par conséquent, d'autres utilisateurs peuvent avoir d'autres applications qui exécutent conhost.exe. Je sais que ma machine ne fonctionne pas, c'est pourquoi je peux terminer la tâche en toute sécurité, sauf YMMV.)

Quant à savoir pourquoi cela se produit? Cela semble se produire lorsque j'ouvre plusieurs projets à la fois, ce que j'ai tendance à faire souvent, même si je n'en crée et ne débogue que l'un à tout moment.


Edit # 1 - Ce n'est pas une "solution miracle" malheureusement. Ça ne marche pas toujours pour moi. En règle générale, lorsque les choses deviennent lentes, je ferme simplement toutes mes sessions Visual Studio, puis je vais dans le gestionnaire de tâches et j'arrête toute instance de celui-ci, conhost.exe, iisexpress.exe Microsoft.VisualStudio.Web.Host.exe et MSBuild.exe Je peux trouver.

En règle générale, après cela, lorsque je redémarre mon projet, il se charge rapidement. Mais pas toujours.

Vraiment, je pense que la meilleure solution consiste probablement à ne pas créer et déboguer du code à partir d'un dossier / partage réseau redirigé.


Edit # 2 - Deux ans plus tard, et c'est toujours un problème pour moi dans Visual Studio Community 2013, mais j'ai semblé au moins trouver la tâche coupable: Explorer.exe . Ouais, qui savait. Au moment où je termine cette tâche, bam, le chargement des pages en une seconde.

Si j'ai un navigateur de fichiers de l'Explorateur Windows ouvert sur mon lecteur réseau redirigé (qui est souvent car c'est là que se trouve mon code), ce problème semble se produire. Fermer la fenêtre ne suffit pas, je dois tuer toute la tâche Explorer.exe. Je ne pouvais que deviner ce que ça faisait ... devenir fou avec des poignées de fichier?

Je peux généralement utiliser le gestionnaire de tâches pour démarrer une nouvelle tâche explorer.exe (je ne peux prendre que beaucoup de tabulations alt), et Visual Studio continuera à charger correctement et rapidement. Mais si j'ouvre à nouveau l'Explorateur Windows, il revient presque toujours à super-slow-mo.

Donc, si vous avez un partage réseau redirigé, essayez-le. C'est bien mieux que de travailler localement.

Ber'Zophus
la source
Je sais que c'est une nouvelle un peu ancienne, mais j'ai eu le même problème. Mon équipe m'a suggéré d'utiliser un script de construction qui copiait les fichiers de ma source locale à l'endroit où les fichiers étaient exécutés et chaque fois que j'exécutais ce sous-programme par lui-même, il créerait un conhost.exe et ne le fermerait pas. Une fois que j'en ai terminé toutes les copies supplémentaires, cela a recommencé à fonctionner comme un éclair.
SomeoneRandom
22

Ce qui précède sont toutes de bonnes solutions et j'ai essayé toutes, mais j'ai obtenu la solution ici , qui est de

Debug -> Delete All Breakpoints
Tahir Hassan
la source
19

Pour moi, c'était IE 9.08.8112.16241. Dès que j'ai utilisé Firefox ou Chrome, il n'y a pas eu de débogage lent avec F10 ou F11. Je ne sais pas quel est le problème avec IE mais je méprise officiellement son utilisation pour les tests maintenant.

Mise à jour: j'ai désactivé tous les modules complémentaires du programme IE et il est de retour à pleine vitesse. Les allumer un par un a révélé que LastPass (dans mon cas) était le coupable. Je suppose que je ne blâme pas la SEP après tout.

DMadden51
la source
2
Cela a également résolu mon problème. J'obtenais des blocages système complets lors de la tentative de débogage, en particulier lors de l'utilisation de la fenêtre QuickWatch. La barre d'outils LastPass doit être désactivée. (IE 10.0.9200.16635)
mpeterson
1
Et c'est pourquoi j'aime StackOverflow. Mais LastPass devrait résoudre ce problème - je leur envoie un e-mail maintenant pour les informer. C'est évidemment toujours un problème avec VS2013 et IE 11. LastPass désactivé et de retour à la normale. Merci à UserBlueOne pour l'info - peut reprendre le travail.
Sean
1
FREAKEN LASTPASS! Mon clavier était complètement bourré lors du débogage dans VS 2012 avec mon application MVC. LastPass désactivé et tout a de nouveau volé. MERCI! A voté.
Tony
Dans Win8.x avec IE, si vous utilisez un compte MS pour la connexion, vous pouvez le faire synchroniser vos connexions, donc pas besoin d'utiliser LastPass mais toujours (partiellement) les avantages, :)
Peter
Cela… a fonctionné pour moi. Veuillez noter que c'est maintenant 2019 --- six ans plus tard --- et j'utilise le plugin LastPass avec Microsoft Edge.
Luke Maurer
15

Pour moi, j'ai implémenté cette astuce qui a fondamentalement considérablement amélioré les performances en ajoutant les deux attributs suivants à la balise de compilation dans web.config

<compilation ... batch="false" optimizeCompilations="true"> ... </compilation>

Que fait batch = "false"?

Il rend la pré-compilation plus sélective en ne compilant que les pages qui ont changé et nécessitent une recompilation

Que font exactement les optimisationCompilations? La source

ASP.NET utilise un code de hachage par application qui inclut l'état d'un certain nombre de choses, y compris le dossier bin et App_Code et global.asax. Chaque fois qu'un domaine d'application ASP.NET démarre, il vérifie si ce code de hachage a changé par rapport à ce qu'il avait précédemment calculé. Si c'est le cas, le dossier codegen entier (où vivent les assemblys compilés et copiés en ombre) est effacé.

Lorsque cette optimisation est activée (via OptimizeCompilations = "true"), le hachage ne prend plus en compte bin, App_Code et global.asax. Par conséquent, si ceux-ci changent, nous n'effacerons pas le dossier codegen.

Référence: élément de compilation sur msdn

Korayem
la source
2
Merci d'avoir posté. En fait, cela a fait plus pour améliorer mes performances que la réponse acceptée.
Kanapolis
@ Ber'Zophus pouvez-vous essayer celui-ci et partager avec nous vos résultats?
Korayem
la compilation entre dans system.web
The One
1
Confirmé de fonctionner pour une grande solution et une application Web (MVC) dans.
hQuse
12

J'ai également eu des problèmes de performances d'exécution avec le débogage et j'ai essayé de nombreuses options de débogueur. Dans mon cas, d'énormes performances ont été obtenues lorsque je modifie ces options:

Outils - Options - Débogage - Fenêtre de sortie - (Paramètres de sortie généraux - Toutes les sorties de débogage) - OFF

arkhivania
la source
12

Dans mon cas, c'était l'extension .NET Reflector Visual Studio (version 8.3.0.93) avec VS 2012. Le débogage prenait 10 secondes pour chaque étape (F10).

Dans Visual Studio, accédez à Outils / Extensions et mises à jour ... et désactivez l' extension .NET Reflector Visual Studio . N'oubliez pas de redémarrer Visual Studio.

shamp00
la source
J'ai découvert à la dure que cela causait aussi mon problème. Ce n'est qu'après avoir désactivé l'extension que j'ai cherché à voir si quelqu'un d'autre l'avait remarqué.
awj
11

J'ai eu des problèmes avec le débogage lent de Visual Studio lorsque le débogueur "Native Code" était activé. Essayez de le désactiver.

Sur "Visual Studio 2012", allez sur:

  1. Propriétés du projet ->
  2. Web ->
  3. Débogueurs (bas de page). ->
  4. Désactiver tout sauf ASP.NET

J'espère que cela aide.

Questions similaires: 1 , 2

Paulius Zaliaduonis
la source
Le mien est déjà réglé pour cela malheureusement, donc pas de solution pour moi. Mais cela pourrait être un bon conseil pour les autres.
Ber'Zophus
Cela m'a arrangé!
Harvey
11

Dans mon cas, c'était

Tools/Options/Debugging/General/Enable JavaScript debugging for ASP.NET (Chrome and IE)

Une fois que j'ai décoché cela, mon début de débogage est passé de 45-60 secondes à 0-5 secondes.

toddmo
la source
Celui-ci est le plus rapide
Frank Myat jeu
10

Une fois, après une panne de courant, j'ai dû faire face au même problème de lenteur chaque fois qu'un point d'arrêt était atteint ou qu'une exception était levée.

J'ai eu le vague souvenir que le fichier "suo" (dans le même répertoire que le fichier de solution "sln") peut être corrompu et ralentir tout.

entrez la description de l'image ici

J'ai supprimé mes fichiers "suo" et tout allait bien. La suppression des fichiers .suo est inoffensive et implique uniquement de recréer la disposition de mes fenêtres ainsi que le projet de démarrage et quelques autres personnalisations non critiques.

Larry
la source
Je viens de me rendre compte que je suis aussi lent après une panne de courant, merci beaucoup pour cette réponse.
Nic
recherchez un .vsdossier dans les versions ultérieures de Visual Studio. Supprimez cela.
CAD bloke
10

J'étais également confronté à ce problème, voici les étapes que j'effectue et cela fonctionne pour moi toujours:

  • Suppression du fichier .suo de la solution.
  • Suppression des fichiers ASP.NET temporaires (vous pouvez les trouver à le trouver dans % WINDOW% \ Microsoft.NET \ Framework \\ Fichiers ASP.NET temporaires )
  • Suppression de tous les points d'arrêt dans l'application.
Geeky Ninja
la source
Le redémarrage l'a fait prendre 5 fois plus longtemps que la normale au lieu de 10 fois plus longtemps que la normale. La suppression du fichier .suo a rendu le démarrage presque instantané. Merci!
Shelby115
Il semble que la suppression du fichier .suo ait fonctionné. Une raison quelconque pour supprimer ces fichiers aide à augmenter les performances.?
SharpCoder
@SharpCoder .suo contient de nombreuses informations telles que les fichiers actuellement ouverts dans l'EDI, les informations de débogage, les paramètres locaux, etc. certains cas.
Geeky Ninja
9

Je ne sais pas si vous rencontrez toujours ce problème, mais je débogue des sites dans Visual Studio en attachant le débogueur au processus lui-même plutôt que de laisser VS le faire pour moi et je l'ai trouvé pour améliorer considérablement les temps. J'utilise une extension pour VS appelée AttachTo et j'ai un petit article sur la façon dont je l'utilise ici .

J'espère que ça aide.

Andrew Davis
la source
7

Mon problème VS lent a été résolu en désactivant le lien du navigateur

entrez la description de l'image ici

Salé
la source
Je sais que les commentaires "Merci" sont un peu mal vu ici, mais sérieusement, MERCI BEAUCOUP. Ce seul changement a fait passer le programme que je testais de lent au point d'être inutilisable à une réactivité essentiellement instantanée. Vous m'avez probablement acheté environ une heure ou deux par jour de productivité juste pour ne pas avoir à attendre que les choses se chargent
thnkwthprtls
@thnkwthprtls vous êtes les bienvenus - l'un de ces paramètres par défaut de MS que vous devez surveiller :)
Salty
Il n'est pas nécessaire de le désactiver, voir ma réponse => stackoverflow.com/a/34979659/2736742
A. Morel
6

Si quelqu'un remarque que ce comportement sort du champ de gauche, assurez-vous qu'aucun point d'arrêt n'est défini dans web.config. J'ai dû en définir un avec un clic de souris errant, et cela a vraiment ralenti toutes les opérations de débogage.

zmercier
la source
Je viens d'avoir exactement la même chose moi-même. Ça m'a presque rendu fou. Pourquoi diable un point d'arrêt inactif dans un fichier web.config interrompt-il complètement le débogage?
pleunv
6

Après avoir passé toute la journée à attendre que les symboles se chargent aussi lentement que la vitesse de la tortue, à mélanger et à basculer entre toutes les combinaisons possibles: Just My Code, Caching symboles , Intellitrace , Just-In-Time, processus de mise à mort , etc.

Ma solution était en fait de désactiver l'antivirus . Ouais, Windows Defender ralentissait le lancement de mon projet! Il vérifierait toutes les dlls comme Visual Studio les avait demandées et ralentissait tout le processus de chargement des symboles.

Je dois dire que nos machines ont d'excellentes spécifications pour compiler la solution très rapidement, donc cela n'a jamais été un problème. Nous codons dans VS 2013 Ultimate.

IG Pascual
la source
1
Oui, désactiver Windows Defender fonctionne comme un charme! Pour désactiver définitivement Windows Defender dans Windows 10, définissez Start = "4" (4 est désactivé) dans le chemin RegEdit HKLM \ System \ CurrentContolSet \ Services \ WinDefend
hal
Avoir le problème avec l'antivirus AVG. Quelqu'un a-t-il déterminé si un dossier particulier peut être exclu de l'antivirus pour résoudre le problème, s'il vous plaît? J'ai mis en cache des symboles et j'ai exclu le dossier de cache de symboles, mais cela n'a fait aucune différence.
Graham Laight
1
vous pouvez conserver l'AV et exclure de l'analyse certaines trajectoires et cibles (VS et vos projets)
Soleil - Mathieu Prévot
5

Vider le cache de symboles a fonctionné pour moi.

Voir: barre de menus / Outils / Options / Débogage / Symboles / Vider le cache de symboles

Dimitri C.
la source
3

Un problème similaire a perdu mieux la moitié de ma journée!

Étant donné que la solution à mon problème était différente de ce qui est dit ici, je vais le poster afin qu'il puisse aider quelqu'un d'autre.

Le mien était un point d'arrêt. J'avais un point d'arrêt "Break at function" (c'est-à-dire qu'au lieu d'appuyer sur F9 sur une ligne de code, nous les créons en utilisant la fenêtre des points d'arrêt) qui est censé s'arrêter dans une fonction de bibliothèque en dehors de mon projet.

Et j'avais "Utiliser Intellisense pour vérifier le nom de la fonction " VÉRIFIÉ. (Infos ici .)

Cela a ralenti vs comme l'enfer (démarrage du projet de 2 secondes à 5 minutes).

La suppression du point de rupture l'a résolu pour de bon.

BuddhiP
la source
3

Une chose qui a fonctionné pour moi après avoir fait tout ce qui précède était:
Dans la fenêtre Threads (Debug-> Windows-> Threads), définissez Group by sur None. Cela ne peut être fait que lors du débogage.

Cela avait un impact même après la fermeture de cette fenêtre.

David
la source
3

Dans Visual Studio:

Outils -> Options -> Débogage -> Symboles

Choisissez "Seuls les modules spécifiés". Cliquez sur le lien "spécifier les modules" et ajoutez un module vierge (cliquez sur le bouton du nouveau document et appuyez sur OK).

MCS
la source
3

Ouvrez le dossier de la solution dans l'explorateur Windows, fermez Visual Studio, supprimez le fichier .suo de l'explorateur Windows.

Maintenant, ouvrez le projet dans Visual Studio, espérons que le débogueur sera attaché / détaché rapidement.

Abdul Rauf
la source
3

Pour moi, c'était des points d'arrêt conditionnels. Cela semble vraiment ralentir les choses.

ewolfman
la source
1
En effet, ils le font. Mais seulement si les lignes qui les contiennent sont réellement exécutées.
Peter Mortensen
3

Accédez à vos variables d'environnement et recherchez la clé _NT_SYMBOL_PATH.

Supprime-le.

Voila, a fonctionné comme un charme.

ozba
la source
value == symsrv*symsrv.dll*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbolstoujours pas de dés!
SliverNinja - MSFT
3

Le problème pour moi était la fonctionnalité "Browser Link" qui est très lourde lorsque plusieurs onglets sont ouverts pour le même projet!

Parce que chaque fois que nous lançons le projet, il ouvre un nouvel onglet avec les communications des liens du navigateur.

Fermez simplement tous les onglets associés au projet et n'en gardez qu'un seul ouvert!

Ce studio visuel instantanément gratuit! C'est magique ! ;-)

«Browser Link est une fonctionnalité depuis Visual Studio 2013 qui crée un canal de communication entre l'environnement de développement et un ou plusieurs navigateurs Web. Vous pouvez utiliser Browser Link pour actualiser votre application Web dans plusieurs navigateurs à la fois, ce qui est utile pour les tests entre navigateurs. »

A. Morel
la source
3

Une solution rapide et facile pour ceux qui ne s'écartent pas beaucoup des paramètres VS par défaut.

Outils -> Paramètres d'importation et d'exportation -> Oui, enregistrez mes paramètres actuels -> Visual C #

Je suis sûr que la solution ci-dessus fonctionnerait également avec d'autres paramètres par défaut. Dans mon cas, quelque chose a gâché mes paramètres de chargement des symboles, mais je n'ai pas pu le corriger même si j'ai essayé pas mal de solutions suggérées.

GDS
la source
3

Veuillez vous assurer que vous n'avez pas ouvert Visual Studio en mode administrateur

J'ai rencontré ce problème et j'ai dû exécuter en mode normal.

sajad
la source
6
Malheureusement, l'exécution en tant qu'administrateur est requise si vos projets sont définis pour s'exécuter dans IIS.
Nelson Rothermel
@NelsonRothermel Quelle version? Plus maintenant (VS2017).
Soleil - Mathieu Prévot
@Soleil: Dans VS2017, c'est toujours requis. IIS s'exécute en tant que service Windows (ou ensemble de services) et non dans l'espace utilisateur. Vous faites peut-être référence à IIS Express qui ne nécessite pas de droits d'administrateur. Je vous recommande généralement d'utiliser ce dernier, en particulier dans une organisation qui verrouille des machines, mais elle a quelques inconvénients.
Nelson Rothermel