2016-04-07 391 views
2

這是一個星期,我有任何Visual Studio(2010專業版,2012專業版和2015社區版),幾分鐘後,我開始一個項目,甚至是空的,沒有觸及任何東西,開始一個完全消耗的線程一個核心,100%使用。 從任務管理器我看到,devenv.exe消耗25%的CPU,我有4個核心,所以100/4 = 25。Visual Studio CPU高使用率

通過使用Process Explorer中我已經看到了爲clr.dllclr.dll!GetCLRFunction + 10793),其運行時間可持續。

這裏是線程的堆棧跟蹤:

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 

有誰知道從上面的線什麼?

在互聯網上,我發現了幾個建議,禁用Visual Studio的一個或另一個插件/擴展,他們都沒有解決問題,而且我有所有VS版本的問題(具有不同的擴展名,發生在同時)

我認爲這與我最近更新的.net framework 4.5〜4.6有關。 我怎樣才能理解問題在哪裏以及如何解決?

+0

解決方法:我已卸載.Net框架4.6.1 SDK。沒有它,Visual Studio無法運行(2010,2012和2015)。重新安裝後,問題消失 – Giox

+0

不,我沒有解決任何問題!問題依然存在。每當我保存一個已編輯的文件(cs,js,html,aspx ...)時,它就會發生,即使我只插入了一個空格。 – Giox

回答

1

當我正在使用第三方本地庫時,我親自跑到這一次,並致電_controlfp更改浮點精度。這樣做在CLR下運行時不受支持。即使它是在執行的代碼中完成的,它會鎖定我的devenv.exe。

我懷疑你有同樣的問題,但這是我做了什麼來追蹤它。


如果你能可靠地重新創建,2015年點擊在旁邊快速啓動右上角的人形圖標,做「報告問題」。

enter image description here

在新窗口中選擇問題區域「集成開發環境」,然後展開了「記錄你的操作重現該問題」,然後選擇項目「重現崩潰或掛起,連接到另一個Visual Studio實例「。開始另一個Visual Studio的副本,你應該看到它列出。

enter image description here

這會是一個ETW log的記錄,並把它的bug報告,當你點擊提交就會發送。該日誌將被保存在%TEMP%\Microsoft\VSFeedbackCollector(您可能希望在發送報告之前獲取它的副本,因爲我認爲它會在發送報告後刪除文件)。

一旦你有了etl文件,你可以在你選擇的etl查看器中打開它,開始挖掘導致高CPU負載發生的原因。

+0

謝謝,我會這樣做 – Giox

2

要了解爲什麼Visual Studio會導致如此高的CPU使用率,您需要安裝Windows Performance Toolkit,它是Windows 10 SDK的一部分(如果您使用的是Windows 7,use the SDK Build 15086,它是Windows 7上的最新版本,對於Windows 8,8.1或Windows 10使用最新的Windows 10 SDK中的WPT)。

enter image description here (所有其他條目可以未選中)

運行WPRUI.exe,選擇第一級CPU使用率並點擊開始。捕獲1分鐘的CPU使用率,現在點擊保存將數據保存到ETL文件中。

現在就生成的ETL文件雙擊在Windows性能分析器(WPA.exe),拖動打開ETL拖放CPU佔用率(採樣)來分析窗格:

enter image description here

現在load debug symbols in WPA擴大的devenv.exe

enter image description here

在我的情況堆棧中的Telerik的擴展導致Visual Studio中的CPU使用率。

+0

謝謝,我仍然在Windows 7上運行。我已經解決了這個問題,卸載所有內容然後重新安裝。可能這個問題是由於Telerik擴展造成的,我也使用它。 – Giox

+0

這也可以與Windows 7一起使用,只需使用15086 SDK即可。我昨天遇到了這個問題,看看是否已經有問題向用戶顯示如何調試此問題。 – magicandre1981