Visual Studio Debuggen / Laden sehr langsam


505

Ich bin am Ende. Visual Studio ist in der Regel sehr langsam beim Debuggen oder beim einfachen Laden ("Starten ohne Debuggen") meiner ASP.NET MVC-Sites. Nicht immer: Zuerst werden die Projekte schön und schnell geladen, aber sobald sie langsam geladen werden, werden sie danach immer langsam geladen. Ich könnte 1-2 Minuten oder länger warten.

Mein Setup:

Derzeit verwende ich Visual Studio 2012 Express , aber ich hatte das gleiche Problem auch in Visual Studio 2010 Express. Meine Lösung ist auf einem Netzlaufwerk gespeichert. Insbesondere handelt es sich um Eigene Dateien, die auf ein Netzlaufwerk umgeleitet werden, wenn dies von Bedeutung ist. (Sollte es nicht sein. Es gibt Zeiten, in denen meine Site unter diesem Setup sehr schnell geladen wird.)

Ich lade normalerweise in Internet Explorer 9, aber das gleiche Problem tritt in Firefox auf.

Dies kann in jedem ASP.NET MVC-Projekt passieren, an dem ich arbeite, und es scheint sich um DisplayTemplates zu drehen, wie es alle meine ASP.NET MVC-Projekte tun. Und es ist alles C # und Razor, wenn das wichtig ist.

Symptome:

Das System lädt meine Symbole hunderte Male. Grundsätzlich die folgenden, aber es gibt mindestens 300 solcher Zeilen mit jeweils geringfügig unterschiedlichen DLL-Dateien für die gleichen CSHTMLs:

'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.

Oben habe ich drei DisplayTemplates: "Kontakt", "Standort" und "Statuscode". Es scheint, dass IIS bei jedem Aufruf der Anzeigevorlage zweimal Symbole lädt. Wenn ich also eine Tabelle mit 100 Einträgen anzeige, die alle drei dieser Anzeigevorlagen aufruft, werden 600 separate Symbole geladen.

Dies ist auch keine schnelle Operation. In den von IIS generierten Protokolldateien dauert es ungefähr 200 ms, bis jedes Symbol geladen ist. Somit superlange Verzögerungen.

Was ich versucht habe:

  • Debug- oder Release-Version spielt keine Rolle.
  • Wenn Sie mein Projekt auf einem Webserver auf eine vollständige IIS-Implementierung setzen, läuft es superschnell und ohne Probleme.
  • Cassini, IIS Express 7.5 und IIS Express 8.0 haben alle das Problem.
  • Alle Haltepunkte löschen bewirkt nichts.
  • Clean Solution oder das Löschen der .suo-Datei tun ebenfalls nichts.
  • Wenn ich IIS Express repariere oder den My Docs\IISExpressOrdner lösche oder Visual Studio repariere / neu installiere → Das Problem kann verschwinden, aber nur für eine Weile, bevor es sofort wieder auftritt.

Jeder Rat wird geschätzt.

Um weitere Fragen zu beantworten: Ja, meine Maschine hat definitiv die Leistung. Das Wütende ist, dass dasselbe Projekt, bei dem NICHTS geändert wurde, manchmal sehr schnell geladen werden kann, normalerweise nachdem ich IIS Express repariert und den My Docs\IISExpressOrdner gelöscht habe . Schließlich passiert "etwas" und es dauert nur 2 Minuten, um es erneut zu laden. Woran ich arbeite, ist kein kompliziertes Projekt. Keine externen Bibliotheken oder Abhängigkeiten, und mein VS.NET hat überhaupt keine Addons.

Zu beachten ist, dass dieses Gerät über Symantec Endpoint Protection verfügt, das in der Vergangenheit Chaos verursacht hat. Das vollständige Deaktivieren (es ist gut, Administrator zu sein) hat das Problem jedoch nicht behoben.

Ich habe an dieser Stelle eine Theorie. Ich denke, das ist alles, weil ich an einem umgeleiteten Ordner von einer Netzwerkfreigabe arbeite. Während der Debugger seine Hunderte von "geladenen Symbolen" durchlief, hielt ich inne, um zu sehen, was er tat. Es war in meinem Code und lud die DisplayTemplate, die ich hatte. Beim Betreten der Vorlage wird Folgendes ausgegeben:

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'

Es sieht so aus, als würde Visual Studio meine Anzeigevorlage jedes Mal neu kompilieren, wenn sie aufgerufen wird, was wiederum hunderte Male der Fall ist. Meine Theorie ist, dass Visual Studio die Datei kompiliert, auf der Netzwerkfreigabe speichert, die Netzwerkfreigabe dann irgendwie eine neue Zeit darauf stempelt und Visual Studio dann denkt, dass sich die Datei geändert hat und Visual Studio sie daher erneut kompiliert. Nur eine Theorie; Ich habe wirklich keine Ahnung.

Zum einen habe ich anscheinend Offline-Dateien (dies ist ein Desktop-Computer in einem Büro; es könnte mich nicht weniger interessieren). Ich werde morgen deaktivieren, neu starten und es erneut versuchen.

Wenn Sie mein Projekt so wie es ist auf das lokale C: verschieben, wird es behoben. Es wird sehr schnell geladen. Dies ist jedoch in einer Arbeitsumgebung nicht ideal. Ich verliere frühere Versionen, mein Code wird nur dann gesichert, wenn ich ihn manuell kopiere, und er wird nicht mehr an Dritte weitergegeben.

Ich kann damit auskommen, es von C auf die Netzwerkfreigabe hin und her zu kopieren, wenn es darum geht. Es ist viel ärgerlicher, zwei Minuten auf jedes Laden der Seite zu warten.


Ich habe viele Fragen: Was ist mit der Maschine, auf der Sie sie ausführen? Hat es genug PS für das, was Sie versuchen zu tun? Haben Sie Plugins von Drittanbietern? Welche Art von Antivirus haben Sie?
Fickle Panther

1
Meine Frage wurde mit weiteren Informationen aktualisiert.
Ber'Zophus

Das Entfernen von Offlinedateien schien nur die Lösung zu sein. Es hat eine Weile großartig funktioniert, dann kam das Problem zurück. Aber ich habe eine andere mögliche Antwort. Aktualisierung meiner Lösung.
Ber'Zophus

Um die Antiviren-Frage zu beantworten, hatte ich große Probleme mit der Ausführung von ThreatFire. Das vorübergehende Ausschalten beschleunigte den Debugger für mich mindestens um das Hundertfache. Das Ausschalten meines Haupt-AV (Avast!) Hat nur geringfügig geholfen.
Jon Coombs

@ JohnSaunders Haben Sie versucht, es im Administratormodus auszuführen
Robert Oschler

Antworten:


650

So habe ich das Problem "langsames Laden von Symbolen" in Visual Studio 2012 gelöst:

  • Gehen Sie zu Extras -> Optionen -> Debuggen -> Allgemein

  • Aktivieren Sie das Häkchen neben "Nur meinen Code aktivieren".

  • Gehen Sie zu Extras -> Optionen -> Debuggen -> Symbole

  • Klicken Sie auf die Schaltfläche "..." und erstellen / wählen Sie irgendwo auf Ihrem lokalen Computer einen neuen Ordner aus, um zwischengespeicherte Symbole zu speichern. Ich habe mein "Symbol-Caching" genannt und es in "Dokumente -> Visual Studio 2012" eingefügt.

  • Klicken Sie auf "Alle Symbole laden" und warten Sie, bis die Symbole von den Microsoft-Servern heruntergeladen wurden. Dies kann eine Weile dauern. Beachten Sie, dass die Schaltfläche Alle Symbole laden nur beim Debuggen verfügbar ist.

  • Deaktivieren Sie das Kontrollkästchen neben "Microsoft Symbol Server", um zu verhindern, dass Visual Studio die Microsoft-Server remote abfragt.

  • OK klicken".

Von nun an sollte das Laden von Symbolen viel schneller sein.

Beachten Sie, dass Sie, wenn Sie Änderungen / Downloads an Microsoft-Assemblys vornehmen, möglicherweise zum Dialogfeld "Symbole" zurückkehren und erneut "Alle Symbole laden" müssen.


31
Keine Lösung für mich, fürchte ich. Dies wäre eine gute Lösung für diejenigen, die sich mit Problemen mit Microsoft-Symbolen befassen. Leider scheint sich mein Problem um meine eigenen Symbole zu drehen. Diese Symbole werden bereits lokal zwischengespeichert und aus irgendeinem Grund Hunderte von Kacheln auf nur einer Seite geladen.
Ber'Zophus

8
danke für diesen Tipp ein Problem, das ich hier habe, ist die Schaltfläche Alle Symbole laden ist für mich deaktiviert irgendwelche Ideen?
Chris McGrath

14
@ChrisMcGrath versuchen Sie diesen Link social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/… . Übrigens danke für die tolle Antwort
Bobby Tables

16
Selbst nachdem Sie Ihre Schritte ausgeführt haben, ist die Schaltfläche "Alle Symbole laden" ausgeblendet und ich kann nicht darauf klicken. Was sollte ich jetzt tun? Ich benutze VS Express 2012.
Himanshu Aggarwal

86
Hier ist eine Lösung für diejenigen, bei denen die Schaltfläche Alle Symbole deaktiviert ist: Die Schaltfläche ist nur beim Debuggen verfügbar.
Gwynnbleid1

114

Das Ausschalten von IntelliTrace hat dies für mich behoben.

In Visual Studio Extras -> Optionen -> IntelliTrace

Deaktivieren Sie dann das Kontrollkästchen für "IntelliTrace aktivieren".

Deaktivieren Sie IntelliTrace in Visual Studio 2012


2
Ich hatte dieses Problem, als ich einen meiner Unit-Tests durchlief. Bei eingeschaltetem Intellitrace dauerte es ungefähr 300 Sekunden und beim Ausschalten ungefähr 14 Sekunden. Dieses Update hat bei mir wirklich funktioniert.
Paul Bullivant

2
Ich habe meinen Start von 25 auf 6 Sekunden verbessert. Ich denke, es hat mir sehr geholfen, weil ich beim Start der Anwendung viel von meinem eigenen Code ausgeführt habe
James Ellis-Jones

2
Verdammt ... Von 1 Minute bis 10 Sekunden. Es ist standardmäßig in VS2012 Ultimate ausgewählt. Pass auf Jungs auf
Kevin Cloet

7
Intellitrace kann unter Extras => Optionen nicht gefunden werden. .. Ich habe vsComunity 2015
Shireef Khatab

8
In Visual Studio 2015 ist Intellitrace nur in VS 2015 Enterprise Edition vorhanden.
HK1

78

Nichts davon funktionierte für mich, aber ich fand einen Haltepunkt auf einem Symbol, das gelöscht wurde. Das Jahr 2010 schien daran zu hängen. Um zu sehen, ob dies Ihr Problem ist, debuggen Sie-> Windows-> Haltepunkte. Wenn welche vorhanden sind, löschen Sie sie einfach.

Saunders erwähnte, dass er dies überprüft habe, aber es wurde in den Lösungen für dieses Problem nicht erwähnt. Vielleicht allgemein bekannt für einige, aber nicht für uns alle.


5
Ich hatte plötzlich dieses Problem in VS2010 und es war tatsächlich einer meiner Haltepunkte, der es verursachte. Sobald ich meine Haltepunkte gelöscht hatte, wurde es wieder schnell.
David Airapetyan

3
Wow..VS2012 krabbelte, 5 Minuten nur um ein einfaches Projekt zu erstellen. Alle Haltepunkte wurden gelöscht und es blitzt wieder schnell, danke !!
QFDev

1
Nachdem ich dies gelesen und Ihren Aussagen gefolgt war, fand ich einen Haltepunkt, der irgendwie in den XML-Code einer meiner edmx-Entitätsdateien eingefügt wurde. Du bist ein Mann / eine Frau.
JB06

Danke vielmals. Dies löste mein Problem mit der sehr langsamen Leistung von VS2010.
Vaibhav Patle

2
Dies funktionierte auch für ein langsames Debugging-Problem, das ich in Visual Studio 2015 hatte.
Purplecat

41

Ich habe den Ordner "Temporäre ASP.NET-Dateien" gelöscht und das Laden meiner localhost-Seite hat sich dramatisch verbessert. Hier ist der Pfad ...% temp% \ Temporäre ASP.NET-Dateien \


9
C: \ Users \ {USER_NAME} \ AppData \ Local \ Temp ist der Pfad und der Ordner "AppData" ist ein versteckter Ordner
Shiva Naru

2
Ich habe hier 1 GB alten Mist gefunden ... lösche alles und VS läuft etwas besser. :)
RitchieD

29

Haben Sie FusionLog aktiviert?

Mein VisualStudio startete sehr langsam, öffnete die Lösung und lud Symbole, als ich mit dem Debuggen begann. Es war nur auf meiner Maschine langsam, aber nicht auf anderen Maschinen.

FusionLog schreibt Tonnen von Protokollmaterial auf die Festplatte. Nur das Deaktivieren auf RegEdit hat in meinem Fall alles gelöst.

Dies ist der FusionLog-Schlüssel in der Registrierung:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

Überprüfen Sie den ForceLog-Wert (1 aktiviert, 0 deaktiviert).


1
Ähmmm ... sehr schöne Antwort. Ich war auf demselben Boot. Ich habe es auch vor FusionLoglanger Zeit aktiviert und vergessen, es zu deaktivieren. Jetzt ist das Debuggen der ASP.NET MVCApp viel schneller. Gott sei Dank und @rkawano. :)
Leniel Maccaferri

29

Ich hatte das gleiche Problem und habe die meisten der oben genannten Auflösungen ausprobiert. Das einfache Löschen von Cache- und temporären Dateien funktioniert für mich.

Versuchen Sie, den Inhalt dieser beiden Ordner zu entfernen:

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

und

C:\Users\\{UserName}\AppData\Local\Temp (insbesondere die Ordner iisexpress und Temporäre ASP.NET-Dateien).

Dies kann so eingerichtet werden, dass es bei der Anmeldung bei Windows automatisch erfolgt, indem dem C:\Users\\{username}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartupOrdner eine cmd-Datei mit folgendem Inhalt hinzugefügt wird:

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

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

Das hat funktioniert. Der Ordner "AppData" ist ein versteckter Ordner, nur für den Fall, dass jemand ihn nicht finden kann.
Shiva Naru

3
Das ist die eine! Es funktioniert so gut, dass ich es jetzt automatisch mache, wenn ich mich bei Windows anmelde: Ich habe eine Datei mit dem Namen DeleteVisualStudioCache.cmd zu C: \ Benutzer \ {Benutzername} \ AppData \ Roaming \ Microsoft \ Windows \ Startmenü \ Programme \ hinzugefügt Starten Sie mit den folgenden Befehlen: rmdir C: \ Benutzer \ {Benutzername} \ AppData \ Local \ Microsoft \ WebsiteCache / s / q rmdir C: \ Benutzer \ {Benutzername} \ AppData \ Local \ Temp / s / q Pause
Graham Laight

25

Ich denke, ich kann endlich die Ursache kennen, aber nicht den Grund dafür. Als das Problem erneut auftrat, bemerkte ich eine Menge verwaister "conhost.exe" -Prozesse. Ich würde Visual Studio schließen und sie würden offen bleiben. Das Beenden der Aufgabe für jeden von ihnen hat das Problem endgültig und zuverlässig gelöst. [hoffnungsvoll]

(Beachten Sie nur, dass conhost.exe kein Visual Studio-Prozess ist, obwohl Visual Studio ihn verwendet. Daher haben andere Benutzer möglicherweise andere Anwendungen, die conhost.exe ausführen. Ich weiß, dass mein Computer dies nicht tut, weshalb ich dies kann Beenden Sie die Aufgabe sicher alle außer YMMV.)

Warum passiert das? Es scheint aufzutreten, wenn ich mehr als ein Projekt gleichzeitig öffne, was ich häufig mache, obwohl ich immer nur eines davon baue und debugge.


Edit # 1 - Dies ist leider keine "Silberkugel". Bei mir funktioniert das nicht immer. Wenn die Dinge langsam werden, schließe ich normalerweise alle meine Visual Studio-Sitzungen, gehe dann in den Task-Manager und beende jede Instanz davon, conhost.exe, iisexpress.exe Microsoft.VisualStudio.Web.Host.exe und MSBuild.exe Ich kann finden.

Wenn ich mein Projekt danach neu starte, wird es normalerweise schnell geladen. Aber nicht immer.

Ich denke wirklich, dass die beste Vorgehensweise wahrscheinlich darin besteht, keinen Code aus einer umgeleiteten Ordner- / Netzwerkfreigabe zu erstellen und zu debuggen.


Edit # 2 - Zwei Jahre später, und dies ist immer noch ein Problem für mich in Visual Studio Community 2013, aber ich schien zumindest die Schuldige Aufgabe zu finden: Explorer.exe . Ja, wer wusste. In dem Moment, in dem ich diese Aufgabe beende, wird die Seite in einer Sekunde geladen.

Wenn ich einen Windows Explorer-Dateibrowser für mein umgeleitetes Netzlaufwerk geöffnet habe (was häufig der Fall ist, da sich dort mein Code befindet), scheint dieses Problem aufzutreten. Das Schließen des Fensters reicht nicht aus, ich muss die gesamte Explorer.exe-Aufgabe beenden. Ich konnte nur raten, was es tut ... verrückt nach Dateihandles?

Normalerweise kann ich den Task-Manager verwenden, um eine neue explorer.exe-Task zu starten (ich kann nur so viel Alt-Tabbing ausführen), und Visual Studio wird weiterhin gut und schnell geladen. Aber wenn ich den Windows Explorer wieder öffne, geht es fast immer wieder auf Super-Zeitlupe zurück.

Wenn Sie also eine umgeleitete Netzwerkfreigabe haben, probieren Sie es aus. Es ist sicher besser als vor Ort zu arbeiten.


Ich weiß, dass dies ein bisschen alte Nachrichten sind, aber ich hatte das gleiche Problem. Mein Team schlug vor, ein Build-Skript zu verwenden, das Dateien von meiner lokalen Quelle an den Ort kopiert, an dem die Dateien ausgeführt wurden. Jedes Mal, wenn ich diese Unterroutine selbst ausführte, wurde eine conhost.exe erstellt und nicht geschlossen. Sobald ich alle zusätzlichen Kopien davon beendet hatte, lief es wieder blitzschnell.
SomeoneRandom

22

Die oben genannten sind alle gute Lösungen und ich habe sie alle ausprobiert, aber hier die Lösung gefunden , nämlich zu

Debug -> Delete All Breakpoints

19

Für mich war es IE 9.08.8112.16241. Sobald ich Firefox oder Chrome verwendet habe, gab es kein langsames Debuggen mit F10 oder F11. Ich weiß nicht, was das Problem mit dem IE ist, aber ich verachte es offiziell, es jetzt zum Testen zu verwenden.

Update: Ich habe alle IE-Programm-Add-Ons deaktiviert und es ist wieder auf Hochtouren. Das Einschalten nacheinander ergab, dass LastPass (in meinem Fall) der Schuldige war. Ich glaube, ich kann MS doch nicht beschuldigen.


2
Dies hat auch mein Problem behoben. Beim Debuggen wurden vollständige Systemabstürze festgestellt, insbesondere bei Verwendung des QuickWatch-Fensters. Die LastPass-Symbolleiste muss deaktiviert sein. (IE 10.0.9200.16635)
mpeterson

1
Und deshalb liebe ich StackOverflow. Aber LastPass sollte das beheben - ich sende ihnen jetzt eine E-Mail, um sie zu informieren. Es ist offensichtlich immer noch ein Problem mit VS2013 und IE 11. Deaktiviert LastPass und wieder normal. Vielen Dank an UserBlueOne für die Info - kann wieder mit der Arbeit beginnen.
Sean

1
FREAKEN LASTPASS! Meine Tastatur war beim Debuggen in VS 2012 mit meiner MVC-App vollständig voll. LastPass deaktiviert und alles flog wieder. VIELEN DANK! Upvoted.
Tony

In Win8.x mit IE, wenn Sie MS-Konto für die Anmeldung verwenden, können Sie es Ihre Anmeldungen synchronisieren lassen, so dass Sie LastPass nicht verwenden müssen, aber dennoch (teilweise) die Vorteile haben, :)
Peter

Das ... hat bei mir funktioniert. Bitte beachten Sie, dass es jetzt 2019 ist - sechs Jahre später - und ich das LastPass-Plugin mit Microsoft Edge verwende.
Luke Maurer

15

Für mich habe ich diesen Tipp implementiert, der die Leistung drastisch verbessert hat, indem dem Kompilierungs-Tag in web.config die folgenden zwei Attribute hinzugefügt wurden

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

Was macht batch = "false"?

Die Vorkompilierung wird selektiver, indem nur Seiten kompiliert werden, die geändert wurden und neu kompiliert werden müssen

Was genau machen die optimizeCompilations? Quelle

ASP.NET verwendet einen Hash-Code pro Anwendung, der den Status einer Reihe von Dingen enthält, einschließlich des Ordners bin und App_Code sowie global.asax. Bei jedem Start einer ASP.NET-App-Domäne wird überprüft, ob sich dieser Hash-Code von dem zuvor berechneten Code geändert hat. Wenn dies der Fall ist, wird der gesamte Codegen-Ordner (in dem kompilierte und schattenkopierte Assemblys gespeichert sind) gelöscht.

Wenn diese Optimierung aktiviert ist (über optimizeCompilations = "true"), berücksichtigt der Hash bin, App_Code und global.asax nicht mehr. Wenn sich diese ändern, wird der Codegen-Ordner daher nicht gelöscht.

Referenz: Kompilierungselement auf msdn


2
Vielen Dank für die Veröffentlichung. Dies hat tatsächlich mehr zur Verbesserung meiner Leistung beigetragen als die akzeptierte Antwort.
Kanapolis

@ Ber'Zophus kannst du es versuchen und uns deine Ergebnisse mitteilen?
Korayem

Kompilierung geht in system.web
The One

1
Bestätigt, um für große Lösungen und Webanwendungen (MVC) innerhalb zu arbeiten.
hQuse

12

Ich hatte auch Probleme mit der Ausführung beim Debuggen und habe sehr viele Debugger-Optionen ausprobiert. In meinem Fall wurde eine enorme Leistung erzielt, wenn ich diese Optionen ändere:

Extras - Optionen - Debugging - Ausgabefenster - (Allgemeine Ausgabeeinstellungen - Alle Debug-Ausgaben) - AUS


12

In meinem Fall war es die .NET Reflector Visual Studio-Erweiterung (Version 8.3.0.93) mit VS 2012. Das Debuggen dauerte 10 Sekunden für jeden Step Over (F10).

Gehen Sie in Visual Studio zu Tools / Erweiterungen und Updates ... und deaktivieren Sie die .NET Reflector Visual Studio-Erweiterung . Vergessen Sie nicht, Visual Studio neu zu starten.


Ich fand auf die harte Tour heraus, dass dies auch mein Problem verursachte. Erst nachdem ich die Erweiterung deaktiviert hatte, sah ich nach, ob es jemand anderes bemerkt hatte.
awj

11

Ich hatte Probleme mit dem langsamen Debuggen von Visual Studio, als der Debugger "Native Code" aktiviert war. Versuchen Sie es zu deaktivieren.

Gehen Sie in "Visual Studio 2012" zu:

  1. Projekteigenschaften ->
  2. Web ->
  3. Debugger (Ende der Seite). ->
  4. Deaktivieren Sie alle außer ASP.NET

Ich hoffe es hilft.

Ähnliche Fragen: 1 , 2


Meins ist leider schon darauf eingestellt, also keine Lösung für mich. Könnte aber ein guter Rat für andere sein, es zu versuchen.
Ber'Zophus

Das hat es für mich behoben!
Harvey

11

In meinem Fall war es

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

Nachdem ich dies deaktiviert hatte, ging mein Debug-Start von 45-60 Sekunden auf 0-5 Sekunden zurück.


Dieser ist der schnellste
Frank Myat Do

10

Einmal musste ich nach einem Stromausfall jedes Mal mit dem gleichen Langsamkeitsproblem konfrontiert werden, wenn ein Haltepunkt erreicht oder eine Ausnahme ausgelöst wurde.

Ich hatte die vage Erinnerung daran, dass die "suo" -Datei (im selben Verzeichnis wie die "sln" -Lösungsdatei) beschädigt sein und alles verlangsamen kann.

Geben Sie hier die Bildbeschreibung ein

Ich habe meine "suo" -Dateien gelöscht und alles war in Ordnung. Das Löschen von .suo-Dateien ist harmlos und impliziert nur die Neuerstellung meines Windows-Layouts sowie des Startprojekts und einiger anderer unkritischer Anpassungen.


Ich habe gerade festgestellt, dass ich auch nach einem Stromausfall langsam geworden bin. Vielen Dank für diese Antwort.
Nic

.vsSuchen Sie in späteren Versionen von Visual Studio nach einem Ordner. Lösch das.
CAD Kerl

10

Ich war auch mit diesem Problem konfrontiert. Nachfolgend sind die Schritte aufgeführt, die ich ausführe, und es funktioniert immer für mich:

  • Löschen der .suo-Datei der Lösung.
  • Löschen der temporären ASP.NET-Dateien (Sie finden sie unter % WINDOW% \ Microsoft.NET \ Framework \\ Temporäre ASP.NET-Dateien )
  • Löschen aller Haltepunkte in der Anwendung.

Beim Neustart dauerte es 5x länger als normal anstatt 10x länger als normal. Durch das Löschen der .suo-Datei wurde sie fast sofort gestartet. Vielen Dank!
Shelby115

Scheint, als hätte das Löschen der .suo-Datei funktioniert. Gibt es einen Grund, warum das Löschen dieser Dateien die Leistung steigert?
SharpCoder

@SharpCoder .suo enthält viele Informationen, z. B. welche Dateien derzeit in der IDE geöffnet sind, Debugger-Informationen, lokale Einstellungen usw. Und wenn diese Dateien beschädigt werden, verbrauchen Sie mehr CPU-Auslastung, was dazu führt, dass VS langsam wird und sogar hängen bleibt manche Fälle.
Geeky Ninja

9

Ich weiß nicht, ob Sie dieses Problem immer noch haben, aber ich debugge Websites in Visual Studio, indem ich den Debugger an den Prozess selbst anhänge, anstatt VS dies für mich tun zu lassen, und ich habe festgestellt, dass es die Zeiten erheblich verbessert. Ich verwende eine VS-Erweiterung namens AttachTo und habe einen kleinen Artikel darüber, wie ich sie verwende hier verwende .

Ich hoffe das hilft.


7

Mein langsames VS-Problem wurde durch Deaktivieren des Browser-Links behoben

Geben Sie hier die Bildbeschreibung ein


Ich weiß, dass "Danke" -Kommentare hier etwas verpönt sind, aber im Ernst, VIELEN DANK. Diese eine Änderung führte dazu, dass das Programm, das ich teste, von langsam bis unbrauchbar wurde und im Wesentlichen sofort reaktiv war. Sie haben mir wahrscheinlich ein oder zwei Stunden Produktivität pro Tag gekauft, nur weil ich nicht auf das Laden warten musste
thnkwthprtls

@thnkwthprtls Sie sind willkommen - eine dieser MS-Standardeinstellungen, auf die Sie achten müssen :)
Salzig

Es ist nicht notwendig, es zu deaktivieren, siehe meine Antwort => stackoverflow.com/a/34979659/2736742
A. Morel

6

Wenn jemand bemerkt, dass dieses Verhalten aus dem linken Feld kommt, stellen Sie sicher, dass in web.config keine Haltepunkte festgelegt sind. Ich muss einen mit einem streunenden Mausklick eingestellt haben, und es hat alle Debug-Operationen wirklich verlangsamt.


Hatte gerade genau das gleiche selbst. Hat mich fast verrückt gemacht. Warum um alles in der Welt bricht ein inaktiver Haltepunkt in einer web.config-Datei das Debuggen vollständig ab?
Beschleunig

6

Nachdem Sie den ganzen Tag darauf gewartet haben, dass Symbole so langsam wie die Geschwindigkeit der Schildkröte geladen werden, mischen und wechseln Sie zwischen allen möglichen Kombinationen: Just My Code, Caching-Symbole , Intellitrace , Just-In-Time, Tötungsprozesse usw.

Meine Lösung bestand darin , das Antivirus zu deaktivieren . Ja, Windows Defender hat meinen Projektstart verlangsamt! Es überprüfte alle DLLs, wie Visual Studio sie angefordert hatte, und verlangsamte den gesamten Ladevorgang der Symbole.

Ich muss sagen, dass unsere Maschinen großartige Spezifikationen haben, um die Lösung wirklich schnell zu kompilieren. Das war also nie ein Problem. Wir codieren in VS 2013 Ultimate.


1
Ja, das Ausschalten von Windows Defender funktioniert wie ein Zauber! Um Windows Defender in Windows 10 dauerhaft zu deaktivieren, setzen Sie Start = "4" (4 ist deaktiviert) im RegEdit-Pfad HKLM \ System \ CurrentContolSet \ Services \ WinDefend
hal

Problem mit AVG Antivirus. Hat jemand herausgefunden, ob ein bestimmter Ordner von Antivirus ausgeschlossen werden kann, um das Problem zu beheben? Ich habe Symbole zwischengespeichert und den Symbol-Cache-Ordner ausgeschlossen - aber das machte keinen Unterschied.
Graham Laight

1
Sie können die AV behalten und bestimmte Pfade und Ziele (VS und Ihre Projekte) von der Analyse ausschließen
Soleil - Mathieu Prévot

5

Das Leeren des Symbolcaches hat bei mir funktioniert.

Siehe: Menüleiste / Extras / Optionen / Debuggen / Symbole / Leerer Symbolcache


3

Ähnliches Problem verschwendete besser die Hälfte meines Tages!

Da sich die Lösung für mein Problem von der hier genannten unterscheidet, werde ich sie veröffentlichen, damit sie jemand anderem helfen kann.

Meins war ein Haltepunkt. Ich hatte einen Haltepunkt "Pause bei Funktion" (dh anstatt F9 in einer Codezeile zu drücken, erstellen wir sie mithilfe des Haltepunktfensters), der in einer Bibliotheksfunktion außerhalb meines Projekts anhalten soll.

Und ich hatte "Verwenden Sie Intellisense, um den Funktionsnamen zu überprüfen " GEPRÜFT. (Info hier .)

Dies verlangsamte sich im Vergleich zur Hölle (Projektstart von 2 Sekunden auf 5 Minuten).

Das Entfernen des Haltepunkts löste es endgültig.


3

Eine Sache, die für mich nach all dem funktioniert hat, war:
Setzen Sie im Thread-Fenster (Debug-> Windows-> Threads) die Gruppe Gruppieren auf Keine. Dies ist nur beim Debuggen möglich.

Dies hatte auch nach dem Schließen dieses Fensters Auswirkungen.


3

In Visual Studio:

Extras -> Optionen -> Debuggen -> Symbole

Wählen Sie "Nur angegebene Module". Klicken Sie auf den Link "Module angeben" und fügen Sie ein leeres Modul hinzu (klicken Sie auf die Schaltfläche "Neues Dokument" und klicken Sie auf "OK").


3

Öffnen Sie den Lösungsordner im Windows Explorer, schließen Sie das Visual Studio und löschen Sie die .suo-Datei aus dem Windows Explorer.

Öffnen Sie nun das Projekt in Visual Studio, hoffentlich wird der Debugger schnell angehängt / getrennt.


3

Für mich waren es bedingte Haltepunkte. Diese scheinen die Dinge wirklich zu verlangsamen.


1
In der Tat. Aber nur, wenn die Zeilen, die sie enthalten, tatsächlich ausgeführt werden.
Peter Mortensen

3

Gehen Sie zu Ihren Umgebungsvariablen und suchen Sie nach dem Schlüssel _NT_SYMBOL_PATH.

Lösche es.

Voila, arbeitete wie ein Zauber.


value == symsrv*symsrv.dll*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbolsimmer noch keine Würfel!
SliverNinja - MSFT

3

Das Problem für mich war die "Browser Link" -Funktion, die sehr umfangreich ist, wenn Sie mehrere Registerkarten für dasselbe Projekt geöffnet haben!

Denn jedes Mal, wenn wir das Projekt starten, wird ein neuer Tab mit Browser-Link-Kommunikation geöffnet.

Schließen Sie einfach alle mit dem Projekt verknüpften Registerkarten und lassen Sie nur eine offen!

Dieses kostenlose, sofort visuelle Studio! Es ist Magie ! ;-);

„Browser Link ist eine Funktion seit Visual Studio 2013, die einen Kommunikationskanal zwischen der Entwicklungsumgebung und einem oder mehreren Webbrowsern erstellt. Sie können Browser Link verwenden, um Ihre Webanwendung in mehreren Browsern gleichzeitig zu aktualisieren. Dies ist nützlich für browserübergreifende Tests. “


3

Eine schnelle und einfache Lösung für diejenigen, die nicht viel von den Standard-VS-Einstellungen abweichen.

Extras -> Einstellungen importieren und exportieren -> Ja, meine aktuellen Einstellungen speichern -> Visual C #

Ich bin sicher, dass die obige Lösung auch mit anderen Standardeinstellungen funktionieren würde. In meinem Fall hat etwas meine Einstellungen zum Laden von Symbolen durcheinander gebracht, aber ich konnte es nicht beheben, obwohl ich einige der vorgeschlagenen Lösungen ausprobiert habe.


3

Stellen Sie sicher, dass Sie Visual Studio nicht im Administratormodus geöffnet haben

Ich war mit diesem Problem konfrontiert und musste im normalen Modus laufen.


6
Leider ist die Ausführung als Administrator erforderlich, wenn Sie Ihre Projekte so eingestellt haben, dass sie in IIS ausgeführt werden.
Nelson Rothermel

@ NelsonRothermel Welche Version? Nicht mehr (VS2017).
Soleil - Mathieu Prévot

@ Soleil: In VS2017 ist es noch erforderlich. IIS wird als Windows-Dienst (oder eine Reihe von Diensten) und nicht im Benutzerbereich ausgeführt. Möglicherweise beziehen Sie sich auf IIS Express, für das keine Administratorrechte erforderlich sind. Ich würde generell empfehlen, Letzteres zu verwenden, insbesondere in einer Organisation, die Maschinen sperrt, aber einige Nachteile hat.
Nelson Rothermel
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.