2

Es ist eine Woche, die ich jedes Visual Studio (2010 Professional, 2012 Professional und 2015 Community Edition), dass nach ein paar Minuten habe ich ein Projekt gestartet sogar leer, ohne etwas zu berühren, starten Sie einen Thread, der vollständig verbraucht ein Kern, 100% Nutzung. Von Task-Manager habe ich gesehen, dass devenv.exe verbraucht 25% der CPU, ich habe 4 Kerne so 100/4 = 25.Visual Studio CPU High Usage

von Process Explorer verwenden ich das gesehen habe, ist clr.dll (clr.dll! GetCLRFunction + 10793), die kontinuierlich läuft.

hier ist der Stack-Trace des Fadens:

ntoskrnl.exe!KeWaitForMultipleObjects+0xc0a 
ntoskrnl.exe!KeAcquireSpinLockAtDpcLevel+0x712 
ntoskrnl.exe!KeWaitForSingleObject+0x19f 
ntoskrnl.exe!PoStartNextPowerIrp+0xba0 
ntoskrnl.exe!PoStartNextPowerIrp+0x183d 
ntoskrnl.exe!IoFreeErrorLogEntry+0x297 
System.ni.dll+0x19ab70 
System.ni.dll+0x1de979 
System.ni.dll+0x19ab70 
System.ni.dll+0x199d42 
System.ni.dll+0x1ded86 
System.ni.dll+0x1de5fa 
System.ni.dll+0x1de397 
System.ni.dll+0x1da636 
System.ni.dll+0x1c755e 
System.ni.dll+0x19ebfb 
System.ni.dll+0x19eccf 
clr.dll+0x1396 
clr.dll+0x291f 
clr.dll!PreBindAssemblyEx+0x1822c 
clr.dll!PreBindAssemblyEx+0x183af 
mscorlib.ni.dll+0x2f1213 
mscorlib.ni.dll+0x2f103e 
mscorlib.ni.dll+0x2ffb72 
mscorlib.ni.dll+0x30a366 
mscorlib.ni.dll+0x2ffd30 
mscorlib.ni.dll+0x3aebef 
mscorlib.ni.dll+0x3aeaba 
clr.dll+0x291f 
clr.dll+0x9aff 
clr.dll!PreBindAssembly+0xb165 
clr.dll!PreBindAssembly+0x9653 
clr.dll!PreBindAssembly+0x96bd 
clr.dll!PreBindAssembly+0x978a 
clr.dll!PreBindAssembly+0x9805 
clr.dll!PreBindAssembly+0xb0f9 
clr.dll!PreBindAssembly+0xa166 
clr.dll!GetCLRFunction+0x107dc 
ntdll.dll!RtlInitializeExceptionChain+0x63 
ntdll.dll!RtlInitializeExceptionChain+0x36 

Hat etwas von den obigen Zeilen jeder verstehen ?? Im Internet habe ich mehrere Vorschläge gefunden, um das eine oder andere Plugin/Erweiterung von Visual Studio zu deaktivieren, indem keiner von ihnen das Problem gelöst hat, und außerdem habe ich das Problem auf der ganzen VS-Version (mit unterschiedlicher Erweiterung und passiert bei http://www.ip-phone-forum.de/showthread.php?t=86999) die gleiche Zeit)

Ich denke, es ist etwas im Zusammenhang mit dem .net-Framework 4.5 ~ 4.6, die ich kürzlich aktualisiert habe. Wie kann ich verstehen, wo das Problem liegt und wie es zu lösen ist?

+0

Problemumgehung: Ich habe .Net Framework 4.6.1 SDK deinstalliert. Ohne dieses kann Visual Studio nicht ausgeführt werden (2010, 2012 und 2015). Nach der Neuinstallation ist das Problem weg – Giox

+0

Nein, ich habe nichts gelöst! Das Problem besteht weiterhin. Es passiert jedes Mal, sobald ich eine bearbeitete Datei (cs, js, html, aspx ...) speichere, auch wenn ich nur ein Leerzeichen eingefügt habe. – Giox

Antwort

1

Ich persönlich lief zu diesem einmal, als eine native 3rd-Party-Bibliothek, mit der ich arbeitete, machte _controlfp Anrufe, um die Fließkomma-Genauigkeit zu ändern. Dies wird beim Ausführen unter der CLR nicht unterstützt. Obwohl es in ausgeführtem Code gemacht wurde, würde es meine devenv.exe sperren.

Ich bezweifle, dass Sie das gleiche Problem haben, aber hier ist, was ich getan habe, um es aufzuspüren.


Wenn Sie es zuverlässig neu erstellen können, im Jahr 2015 klicken Sie auf das Personensymbol in der rechten oberen Ecke neben den schnellen Start und tun „Problem melden“.

enter image description here

Im neuen Fenster wählen Problembereich „Integrated Development Environment“, erweitern Sie dann aus „Ihre Aktionen Nehmen Sie das Problem zu reproduzieren“, und wählen Sie den Punkt „einen Absturz zu reproduzieren oder hängen, heften sich an eine andere Sicht Studio-Instanz. ". Starten Sie eine andere Kopie von Visual Studio und Sie sollten es aufgelistet sehen.

enter image description here

Dies wird in dem Fehlerbericht einen Datensatz ein ETW log und legt es tun, dass es senden, wenn Sie einreichen getroffen. Das Protokoll wird unter %TEMP%\Microsoft\VSFeedbackCollector gespeichert (Sie möchten vielleicht eine Kopie davon abrufen, bevor Sie den Bericht senden, weil ich denke, dass die Dateien gelöscht werden, sobald der Bericht gesendet wurde).

Sobald Sie die ETL-Datei haben, können Sie es in der Etl-Viewer Ihrer Wahl öffnen, um zu beginnen zu graben, was verursacht die hohe CPU-Last passieren.

+0

Danke, ich werde es tun – Giox

2

Um zu sehen, warum Visual Studio eine so hohe CPU-Auslastung verursacht, müssen Sie das Windows Performance Toolkit installieren, das Teil der Windows 10 SDK ist (wenn Sie Windows 7 verwenden, use the SDK Build 15086, die letzte Version, die unter Windows 7 funktioniert, Für Windows 8,8.1 oder Windows 10 verwenden Sie das WPT vom neuesten Windows 10 SDK.

enter image description here (alle anderen Einträge können nicht ausgewählt werden)

Run WPRUI.exe, wählen First Level, CPU-Auslastung und klicken Sie auf Start. Erfassen Sie 1 Minute der CPU-Auslastung, klicken Sie jetzt auf Speichern Sie, um die Daten in einer ETL-Datei zu speichern.

nun einen Doppelklick auf die generierten ETL-Datei, um die ETL in Windows Performance Analyzer (WPA.exe) zu öffnen, per Drag & Drop die CPU-Auslastung (abgetastete) Bereich zu analysieren:

enter image description here

nun load debug symbols in WPA und den Stapel der In meinem Fall devenv.exe

enter image description here

erweitern die Telerik Erweiterung CPU-Auslastung in Visual Studio verursacht.

+0

Danke, ich bin immer noch auf Windows 7 laufen. Ich habe das Problem gelöst, indem Sie alles deinstallieren und dann neu installieren. Wahrscheinlich war das Problem auf Telerik-Erweiterung zurückzuführen, ich benutze es auch. – Giox

+0

Dies kann auch mit Windows 7 verwendet werden, verwenden Sie einfach das 15086 SDK. Ich bin gestern auf das Problem gestoßen und habe hier nachgesehen, ob es bereits eine Frage gibt, um den Benutzern zu zeigen, wie sie dieses Problem beheben können. – magicandre1981